<?php namespace App\Web\Pages\Settings\Projects\Widgets; use App\Models\Project; use App\Models\User; use Filament\Widgets\Widget; use Illuminate\Support\Collection; class SelectProject extends Widget { protected static string $view = 'widgets.select-project'; public ?Project $currentProject = null; /** * @var Collection<int, Project> */ public Collection $projects; public int|string|null $project = null; public function mount(): void { /** @var User $user */ $user = auth()->user(); $this->currentProject = $user->currentProject; $this->projects = $user->allProjects()->get(); } public function updateProject(Project $project): void { /** @var User $user */ $user = auth()->user(); $this->authorize('view', $project); $user->update(['current_project_id' => $project->id]); $this->redirect('/'); } }