public function canBeRenewed(Token $token)
    {
        if(!$token->isExpired()) {
            return true;
        }

        // get the renewal limit from token.
        $renewalLimitTimestamp = $token->getClaim('rli', null);

        // if no renewal limit exists, it means
        // that it should not be renewed.
        if (!$renewalLimitTimestamp) {
            return false;
        }

        // created a UTC carbon object using the renewal limit.
        $limit = Carbon::createFromTimestampUTC($renewalLimitTimestamp);

        // get a UTC carbon object that represents now.
        $now = $this->now();

        // return true if now if before the limit.
        return $now->lessThanOrEqualTo($limit);
    }