where('provider_id', $providerUser->getId()) ->first(); if ($linkedSocialAccount) { return $linkedSocialAccount->user; } else { $user = null; if ($email = $providerUser->getEmail()) { $user = User::where('email', $email)->first(); } if (! $user) { $user = User::create([ 'name' => $providerUser->getName(), 'email' => $providerUser->getEmail(), //'rfc' = $providerUser->public_metadata->rfc, 'social_id' => $providerUser->getId() . '_' . $provider ]); $user->save(); } $user->linkedSocialAccounts()->create([ 'provider_id' => $providerUser->getId(), 'provider_name' => $provider ]); return $user; } } }