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

threeel's avatar

Spark User with Multiple Subscriptions

Can a User have multiple subscriptions in spark. how can this be achieved. ex.

$user->resource1->subscription
$user->resource2->subscription
etc.

0 likes
9 replies
bkintanar's avatar

Does anyone have any feedback regarding multiple subscriptions?

EventFellows's avatar

Out of the box spark will always swap subscriptions - meaning if there is a new subscription added it will replace the current one.

Also the database is setup in a way taylored to one subscription at a time (e.g. consider the user table field current_billing_plan which only allwows one value.

skattabrain's avatar

Last time I used the Stripe API, 1 subscription at a time was baked into the Stripe API. Not sure if they have changed this.

bkintanar's avatar

@EventFellows, thanks for your reply. I've also noticed that Spark swaps subscription and that the users table has the current_billing_plan column.

@skattabrain, I've based my question above from this link ( https://support.stripe.com/questions/can-customers-have-multiple-subscriptions ) Since Stripe clearly supports multiple subscription I was leaning to the possibility on having Spark support it as well.

I've also read someone talked about having to use the quantity attribute that Stripe has. So maybe my question now is what's the best approach in implementing multiple subscriptions using Laravel Spark?

Thank you

KravetsTech's avatar

@bkintanar Has anyone figured this out? We are improvising the same type of deal, multiple subscriptions within Laravel Spark, any references or examples would be awesome!

impeto's avatar

The only solution I have found is to use the item quantity by using


Spark::chargePerSeat('Seat', function($user) {
            return $user->seats()->count();
        });

It falls short of an ideal solution because the user can't sign up for multiple plans, but it does offer a way to sign up for multiple instances of the same plan. (if that makes sense)

You do have to manually increase and decrease the quantity accordingly in your code to keep your records and Stripe's in sync

Please or to participate in this conversation.