availablePermissions = Permission::query() ->orderBy('name') ->pluck('name') ->all(); } protected function rules(): array { return [ 'name' => ['required', 'string', 'max:255'], 'email' => ['required', 'email', 'max:255', Rule::unique('users', 'email')], 'password' => ['required', 'string', 'min:8', 'confirmed'], 'selectedPermissions' => ['array'], 'selectedPermissions.*' => ['string', Rule::in($this->availablePermissions)], ]; } public function createUser(): void { $validated = $this->validate(); $user = User::create([ 'name' => $validated['name'], 'email' => $validated['email'], 'password' => $validated['password'], ]); $user->syncPermissions($validated['selectedPermissions'] ?? []); $this->reset(['name', 'email', 'password', 'password_confirmation', 'selectedPermissions']); session()->flash('success', 'Utente creato con successo.'); } public function render() { return view('livewire.settings.users-index', [ 'users' => User::query()->with('roles', 'permissions')->orderBy('name')->get(), ]); } }