'required|email|unique:users,email', 'username' => 'nullable|unique:users,username', 'password' => [ 'required', 'confirmed', 'min:8', 'regex:/^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/' ], 'birthday' => 'nullable|date', 'role_id' => 'required|exists:roles,id', 'verified' => 'boolean' ]; if ($this->get('country_id')) { $rules += ['country_id' => 'exists:countries,id']; } return $rules; } /** * Get custom messages for validator errors. * * @return array */ public function messages() { return [ 'password.regex' => __('The password must be at least 8 characters long and contain at least one number and one special character (@$!%*?&).') ]; } }