I just realized that we shouldn't call ``hasCoupons`` here. It will fetch the whole collection and for promotions with thousands of coupons, it is a huge performance hit. This is why I introduced the ``couponBased`` flag. We can do ``isCouponBased()`` check here.