session('status'), 'teams' => Team::query() ->with('users') ->orderBy('name') ->get() ->map(fn (Team $team): array => [ 'id' => $team->id, 'name' => $team->name, 'created_at' => $team->created_at?->toISOString(), 'updated_at' => $team->updated_at?->toISOString(), 'user_ids' => $team->users->modelKeys(), 'users' => $team->users->values(), ]), 'users' => User::query() ->orderBy('name') ->get(), ]); } public function store(StoreTeamRequest $request): RedirectResponse { $team = Team::query()->create($request->validated()); return to_route('admin.teams.index') ->with('status', "{$team->name} was created."); } public function updateMembers(UpdateTeamMembersRequest $request, Team $team): RedirectResponse { $validated = $request->validated(); $userIds = collect(Arr::get($validated, 'user_ids', [])) ->map(fn (mixed $userId): int => (int) $userId) ->unique() ->values() ->all(); $this->projectPermissionService->syncTeamMembers($team, $userIds); return to_route('admin.teams.index') ->with('status', "{$team->name} members were updated."); } }