I would do:

    public function isEligible()
    {
        if (false === parent::isEligible()) {
            return false;
        }

        return $this->isCouponEligiblePerUsage()
    }

And then implement a brand new protected method `isCouponEligiblePerUsage` (or any better name), without duplicating the content of method `isCouponEligibleToPromotion` as you just did.