'required|string|max:255', 'email' => 'required|email|unique:users,email', 'password' => 'required|string|min:8', 'password_confirm' => 'required|string|same:password', 'permissions' => 'required|string|in:user,admin' ]; protected $messages = [ 'name' => 'Nome precisa ser informado.', 'email' => 'O email precisa ser informado.', 'email.unique' => 'O email informado já foi cadastrado anteriormente.', 'password' => 'A senha precisa ter 8 ou mais caracteres.', 'password_confirm' => 'As senhas não coincidem.', 'permissions' => 'Escolha o nível de autorização do usuário.' ]; public function createUser(UserService $userService) { $validated = $this->validate($this->rules, $this->messages); try { $this->authorize('createUser', Auth::user()); $user = $userService->createUser($validated); $this->reset(); $this->dispatch('user-created'); $this->dispatch('notify', message: 'Usuário cadastrado com sucesso!'); } catch (\Exception $e) { $this->addError('general', $e->getMessage()); } } public function render() { return view('livewire.admin.create-user'); } }