Here is solution or overview for your question, I hope it will useful for you...
public function register(Request $request)
{
// Validate form data
$request->validate([
'name' => ['required', 'regex:/^[\pL\s]+$/u', 'max:255'],
'email' => ['required', 'email', 'unique:users,email'],
'password' => [
'required',
'min:8',
'regex:/[A-Z]/', // At least one uppercase letter
'regex:/[a-z]/', // At least one lowercase letter
'regex:/[0-9]/', // At least one digit
'confirmed' // Match with password_confirmation
],
], [
'name.required' => 'The name field is required.',
'name.regex' => 'The name can only contain letters and spaces.',
'email.required' => 'The email field is required.',
'email.email' => 'Please provide a valid email address.',
'email.unique' => 'This email address is already registered.',
'password.required' => 'The password field is required.',
'password.min' => 'The password must be at least 8 characters long.',
'password.regex' => 'The password must contain at least one uppercase letter, one lowercase letter, and one digit.',
'password.confirmed' => 'The password confirmation does not match.',
]);
// Save user data
User::create([
'name' => $request->name,
'email' => $request->email,
'password' => bcrypt($request->password),
]);
return redirect()->route('login')->with('success', 'Registration successful!');
}
also you can put that validation code in request file create new request file for register form validation using following command
php artisan make:request RegisterRequest
And then add rules and message in their request file function, i suggest this way because you practice that way when code is optimised and also you can reuse in case of crud function