سلام و عرض ادب
در تکمیل فرمایشات استاد، داخل متد findOrCreateUser به جای اینکه اول user رو find کنیم و بعد شرط بذاریم که اگر وجود نداشت یک یوزر بسازیم میتونیم از متد firstOrCreate خود لاراول استفاده کنیم:
private function findOrCreateUser($user, $driver)
{
return User::firstOrCreate([
'email' => $user->getEmail()
], [
'email' => $user->getEmail(),
'name' => $user->getName(),
'provider' => $driver,
'provider_id' => $user->getId(),
'avatar' => $user->getAvatar(),
'email_verified_at' => now()
]);
}