/**
  * Updates profile
  */
 public function postProfile(Request $request)
 {
     $input = $request->except('_token', 'url');
     if (User::where('username', '=', $request->get('username'))->exists()) {
         $input = $request->except('username', '_token', 'url');
         User::find(Auth::user()->id)->updateProfile($input);
         return Redirect::back()->with('status', 'Username is already in use. Try another one.');
     }
     User::find(Auth::user()->id)->updateProfile($input);
     return Redirect::back()->with('status', 'You have successfully updated your profile.');
 }
 /**
  * checks if user exists then creates new if user does not exist
  */
 private function findOrCreateUser($theUser, $provider)
 {
     $authUser = User::where('uid', $theUser->id)->first();
     $username = isset($theUser->user['first_name']) ? $theUser->user['first_name'] : $theUser->nickname;
     if ($authUser) {
         return $authUser;
     }
     if (User::where('username', $theUser->nickname)->first()) {
         $user = factory(User::class)->make(['username' => $username, 'email' => $theUser->email, 'provider' => $provider, 'uid' => $theUser->id, 'avatar_url' => $theUser->avatar]);
     }
     return User::create(['username' => $username, 'email' => $theUser->email, 'provider' => $provider, 'uid' => $theUser->id, 'avatar_url' => $theUser->avatar]);
 }