/**
  * Обновление или создание нового пользователя
  * @param $userArray
  * @return User|\Illuminate\Http\RedirectResponse
  */
 public function userCreateUpdate($userArray)
 {
     //Проверяем, есть ли этот пользователь в БД
     if ($oauth = Oauth::where('provider_user_id', $userArray['provider_user_id'])->where('provider', $userArray['provider'])->first()) {
         //Обновляем данные в таблице oauth
         $oauth->access_token = $userArray['access_token'];
         $oauth->save();
         //Обновляем данные в таблице user
         $user = $oauth->user()->first();
         $user->email = $userArray['email'];
         $user->save();
         //Обновляем данные в таблице profile
         $profile = $user->profile()->first();
         $profile->first_name = $userArray['first_name'];
         $profile->last_name = $userArray['last_name'];
         $profile->avatar = $userArray['avatar'];
         $profile->save();
     } else {
         //Если пользователя нет в БД, то создаем нового
         try {
             //Запись в таблицу user
             $user = new User();
             $user->nickname = $userArray['first_name'] . ' ' . $userArray['last_name'];
             $user->email = $userArray['email'];
             $user->status = 1;
             $user->access = 'user';
             $user->save();
             //Запись в таблицу oauth
             $oauthUser = new Oauth();
             $oauthUser->provider_user_id = $userArray['provider_user_id'];
             $oauthUser->provider = $userArray['provider'];
             $oauthUser->access_token = $userArray['access_token'];
             $user->oauth()->save($oauthUser);
             //Запись в таблицу profile
             $profile = new Profile();
             $profile->first_name = $userArray['first_name'];
             $profile->last_name = $userArray['last_name'];
             $profile->avatar = $userArray['avatar'];
             $user->profile()->save($profile);
         } catch (\Exception $e) {
             //Ошибки заносим в лог файл
             \Log::error('Oauth: ' . $e->getMessage());
             return redirect('/')->with('error', 'Ошибка или пользователь с таким email существует!');
         }
     }
     return $user;
 }