|string> */ public function rules(): array { /** @var User|null $user */ $user = $this->route('user'); return [ 'name' => ['required', 'string', 'max:255'], 'email' => [ 'required', 'email', 'max:255', Rule::unique(User::class)->ignore($user?->id), ], 'role' => ['required', Rule::enum(UserRole::class)], 'password' => $user ? ['nullable', ...$this->passwordRulesWithoutRequired()] : $this->passwordRules(), ]; } /** * @return array */ private function passwordRulesWithoutRequired(): array { return array_values(array_filter( $this->passwordRules(), fn ($rule) => $rule !== 'required', )); } }