project = $project; } public function form(Form $form): Form { return $form ->schema([ Section::make() ->heading('Add User') ->schema([ Select::make('user') ->name('user') ->options(fn () => User::query() ->whereNotExists(function ($query) { $query->select('user_id') ->from('user_project') ->whereColumn('users.id', 'user_project.user_id') ->where('user_project.project_id', $this->project->id); }) ->pluck('name', 'id') ) ->searchable() ->rules(\App\Actions\Projects\AddUser::rules($this->project)['user']), ]) ->footerActions([ Action::make('add') ->label('Add') ->action(fn () => $this->submit()), ]), ]); } public function submit(): void { $this->authorize('update', $this->project); $this->validate(); app(\App\Actions\Projects\AddUser::class) ->add($this->project, [ 'user' => $this->user, ]); Notification::make() ->title('User added!') ->success() ->send(); $this->user = null; } public function updated(): void { $this->dispatch('userAdded'); } }