validate([ 'name' => 'required|string|max:255', 'email' => 'required|string|lowercase|email|max:255|unique:'.User::class, 'password' => ['required', 'confirmed', Rules\Password::defaults()], 'avatar' => 'nullable|image|mimes:jpeg,png,jpg,gif,webp,svg|max:2048' ]); $userData = [ 'name' => $request->name, 'email' => $request->email, 'password' => Hash::make($request->password), ]; // Handle avatar upload if ($request->hasFile('avatar')) { $avatarPath = $request->file('avatar')->store('avatars', 'public'); $userData['avatar'] = $avatarPath; } $user = User::create($userData); event(new Registered($user)); Auth::login($user); return to_route('dashboard'); } }