public function registerSocialUser($socialUser, $provider)
    {
        // Create the new user
        $user = $this->user->create($this->getUserFromSocial($socialUser));

        if (! $user) {
            return $user;
        }

        // Fire the registering event.
        event(new UserRegistering($user, $socialUser));

        // Add the extra details needed to finish them.
        // Add the user details.
        $this->userDetails->create($this->getUserDetailsFromSocial($socialUser, $user));

        // Assign the user to the default group
        $user->assignRole(config('jumpgate.users.default_role'));

        // Add the user's social account details.
        $user->addSocial($socialUser, $provider);

        // If we do not require activation, set the user as active.
        if (! config('jumpgate.users.require_email_activation')) {
            $user->updateActivationDetails();
        }

        // Fire the registered event.
        event(new UserRegistered($user, $socialUser));

        return $user;
    }