public function findByUserNameOrCreate($userData, $provider)
 {
     if (!isset($userData->email)) {
         $userData->email = time() . '*****@*****.**';
     }
     $user = User::where('provider_id', '=', $userData->id)->first();
     //        $emailExists = User::where('email', '=', $userData->email)->first();
     //        if(!$user && $emailExists) {
     //            return false;
     //        }
     if (!$user) {
         switch ($provider) {
             case 'facebook':
                 $user = User::create(['provider_id' => $userData->id, 'provider' => $provider, 'name' => isset($userData->name) ? $userData->name : null, 'username' => isset($userData->nickname) ? $userData->nickname : null, 'email' => isset($userData->email) ? $userData->email : null, 'avatar' => isset($userData->avatar) ? $userData->avatar : null, 'gender' => isset($userData->user['gender']) ? $userData->user['gender'] : null, 'birthday' => isset($userData->user['birthday']) ? $userData->user['birthday'] : null, 'locale' => isset($userData->user['locale']) ? $userData->user['locale'] : null]);
                 break;
             case 'twitter':
                 $user = User::create(['provider_id' => $userData->id, 'provider' => $provider, 'name' => isset($userData->name) ? $userData->name : null, 'username' => isset($userData->nickname) ? $userData->nickname : null, 'email' => isset($userData->email) ? $userData->email : null, 'avatar' => isset($userData->avatar) ? $userData->avatar : null, 'locale' => isset($userData->user['lang']) ? $userData->user['lang'] : null]);
                 break;
             default:
                 $user = User::create(['provider_id' => $userData->id, 'provider' => $provider, 'name' => isset($userData->name) ? $userData->name : null, 'username' => isset($userData->nickname) ? $userData->nickname : null, 'email' => isset($userData->email) ? $userData->email : null, 'avatar' => isset($userData->avatar) ? $userData->avatar : null]);
                 break;
         }
     }
     $this->checkIfUserNeedsUpdating($provider, $userData, $user);
     return $user;
 }