$this->usernameRules($userId), 'email' => $this->emailRules($userId), 'full_name' => ['required', 'string', 'max:150'], 'phone_number' => ['required', 'string', 'max:20'], 'address' => ['required', 'string'], 'gender' => ['required', 'string', Rule::in(Gender::values())], 'birth_date' => ['required', 'date'], 'birth_place' => ['required', 'string', 'max:100'], ]; } protected function usernameRules(?int $userId = null): array { return [ 'required', 'string', 'max:20', 'min:3', 'alpha_dash', $userId === null ? Rule::unique(User::class) : Rule::unique(User::class)->ignore($userId), ]; } protected function emailRules(?int $userId = null): array { return [ 'required', 'string', 'email', 'max:255', $userId === null ? Rule::unique(User::class) : Rule::unique(User::class)->ignore($userId), ]; } }