Skip to main content

Feature Grants

Coupons can do more than apply discounts — they can grant additional feature access or increase plan limits for the duration the coupon is active. This is useful for promotions, beta invites, or time-limited upgrades without a full plan change.

Creating a feature-granting coupon

How feature grants work

When an active subscription has a feature-granting coupon:
  1. Entitlements::for($user)->allows('exports') checks the base plan first.
  2. If the base plan does not grant the feature, active coupon grants are checked.
  3. The most permissive value wins — a coupon that sets projects: 50 overrides a plan that sets projects: 5.

Combining with discounts

A coupon can apply both a discount and a feature grant simultaneously:

Expiry behaviour

When the coupon expires or is removed, feature grants are revoked. Entitlement checks return to the base plan values on the next request. No action is required — the entitlement layer always reads the current coupon state.

Next steps