Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

connecteev's avatar

Implementing a "Forever" plan in Stripe (like Laracasts)

Just like Laracasts, I am trying to implement a "Forever" Subscription plan in Stripe.

I have 2 questions:

  1. This is for anyone with knowledge about plan upgrades, downgrades and prorations. How would this work, if you were upgrading / downgrading from a monthly plan to the "forever" plan? I know Stripe takes care of prorations for you, but should downgrading from the "forever" plan be allowed? If so, how would the charges work?

  2. For anyone that has a "forever" subscription plan, does Laracasts allow you to downgrade (if you try)? I'm not trying to trick you into downgrading - I'm genuinely curious.

0 likes
6 replies
bobbybouwmann's avatar
  1. The way it should work is getting a discount on the "forever" plan for whatever you already paid. I can imagine that Stripe doesn't support this. As I understand it Jeffrey used to do this by hand in the beginning but has automated it so far. You can grab the period that was already paid for and reduce that from the forever price if you wish. Another solution is just letting someone always pay the forever price no matter what they already paid.

  2. At this point, you can't downgrade your account. It also doesn't make sense after a certain period right? Maybe you can get refund after 2 months if you don't like it, but that works the same as a monthly or yearly refund. You end up with no plan at all and you have your money back. Downgrading could be a thing where the amount is turned into x months of subscription, but in general, I wouldn't off this at all. They bought the forever plan and they confirmed it. They probably wanted this. And you always have the refund option if needed

connecteev's avatar

@bobbybouwmann thanks for sharing your thoughts...all of that makes sense.

Prorating when you upgrade from monthly -> forever: Stripe does support prorations, and Cashier does it by default, too. I plan on doing this.

Re: Downgrading and Canceling:

  • Can you downgrade from Yearly to Monthly? Stripe gives you a "credit" back, but you dont get your money back....you "spend" the credit every month. The balance will decrease the amount due on the customer's next invoice.

  • Can you cancel a Yearly plan? What happens? Stripe doesnt offer refunds, and any money you've paid is "lost" (unless you resume your subscription)

  • Can you cancel a Forever plan? What happens? You can't give a prorated credit back here - because you were being billed "forever". Can't see what Stripe does here because it doesn't offer a "forever" subscription plan. You are suggesting not allowing it at all, which may be the most logical thing to do. I'd like to know...Does Laracasts allow you to downgrade from Forever to Monthly / Yearly?

Thanks..

bobbybouwmann's avatar
Level 88

@connecteev I'm not sure if you can downgrade from forever to yearly/monthly on Laravel. Never tried :P

It makes sense to refund someone who cancels their forever plan in the first few weeks/months. However, I would make that a manual process instead of an automated one. It always depends on the case and what the user wants to do after that.

Try to keep it as simple as possible in this these cases ;)

If Stripe doesn't offer refunds you can probably do a manual refund. That should be fine as well.

1 like
NabinSademba's avatar

i want to subscribe forever plan but i am not being able to pay with my debit card. can anyone help me with this problem?

martinbean's avatar

@NabinSademba How about you contact support, instead of bumping a one-year-old, unrelated forum thread? 🤷‍♂️

Please or to participate in this conversation.