protected function activationComplete()
    {
        try {
            $activation = Activation::create($this->model);
            if ( ! Activation::complete($this->model, $activation->code)) {
                throw new ActivateException($this->model->id, $activation->code, 'fail');
            }

            if ($this->callerActivationMethod(debug_backtrace())) {
                $this->model->is_active = true;
                $this->model->save();
            }

            event(new $this->events['activationSuccess']($this->model));
            return true;
        } catch (ActivateException $e) {
            $this->model->is_active = false;
            $this->model->save();
            event(new $this->events['activationFail']($e->getId(),$e->getActivationCode(), $e->getType()));
            return false;
        }
    }