public function login(Request $request)
    {
        $this->validateLogin($request);

        // If the class is using the ThrottlesLogins trait, we can automatically throttle
        // the login attempts for this application. We'll key this by the username and
        // the IP address of the client making these requests into this application.
        if( $this->hasTooManyLoginAttempts($request) ) {
            $this->fireLockoutEvent($request);

            return $this->sendLockoutResponse($request);
        }

        // If the login attempt was unsuccessful we will increment the number of attempts
        // to login and redirect the user back to the login form. Of course, when this
        // user surpasses their maximum number of attempts they will get locked out.
        $this->incrementLoginAttempts($request);

        if( ! $this->attemptLogin($request) ) {
            return HCLog::info('AUTH-002', trans('HCACL::users.errors.login'));
        }

        // check if user is not activated
        if( auth()->user()->isNotActivated() ) {
            $user = auth()->user();

            $this->logout($request);

            $response = $this->activation->sendActivationMail($user);

            return HCLog::info('AUTH-003', $response);
        }

        //TODO update providers?

        auth()->user()->updateLastLogin();

        //redirect to intended url
        return response(['success' => true, 'redirectURL' => session()->pull('url.intended', url('/'))]);
    }