public function createNewUser($serviceName, AbstractUser $response)
    {
        $data         = $this->parseServiceResponse($response);
        $existingUser = $this->userRepo->getByEmail($data['email']);
        // duplicated user verification
        if ($existingUser === null) {
            $data['password'] = str_random(40);
            $user = $this->userRepo->create($data);
            // create relation for new user and social integration
            $this->addSocialRelation($user, $serviceName, $response);
            return $user;
        } else {
            session()->put('url.intended', route('register'));
            throw new SocialException(
                trans('gzero-social::common.email_already_in_use_message', ['service_name' => title_case($serviceName)])
            );
        }
    }