redirect(); } public function callback(): RedirectResponse { $googleUser = Socialite::driver('google-auth')->user(); $user = User::where('email', $googleUser->getEmail())->first(); if ($user) { return $this->loginExistingUser($user); } return $this->registerNewUser($googleUser); } private function loginExistingUser(User $user): RedirectResponse { if (! $user->hasVerifiedEmail()) { $user->markEmailAsVerified(); } Auth::login($user, remember: true); return redirect()->route('app.home'); } private function registerNewUser(\Laravel\Socialite\Contracts\User $googleUser): RedirectResponse { $user = CreateUser::execute([ 'name' => $googleUser->getName(), 'email' => $googleUser->getEmail(), 'email_verified_at' => now(), ]); event(new Registered($user)); Auth::login($user, remember: true); return redirect()->route('app.onboarding.role'); } }