Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save kingsloi/896fb6ff0f23af1efb861d09c046ed31 to your computer and use it in GitHub Desktop.
Save kingsloi/896fb6ff0f23af1efb861d09c046ed31 to your computer and use it in GitHub Desktop.
Per Team User Subscription in Laravel Spark

Per Team User Subscription in Laravel Spark

If you want the ability to charge a team owner based on how many members their team has, like $10/user/month, then you utilize the Laravel Cashier functionality of incrementing the quantity.

You listen for when a new team member is added and you increase the quantity of the subscription by the amount of users and also listen for when a team member is removed to downsize charges. - Not Braintree Compatible


Within EventServiceProvider.php
'Laravel\Spark\Events\Teams\TeamMemberAdded' => [
    'App\Listeners\UpdatePerUserCharge'
],

'Laravel\Spark\Events\Teams\TeamMemberRemoved' => [
    'App\Listeners\UpdatePerUserCharge'
],
And add a new listener
<?php

namespace App\Listeners;

class UpdatePerUserCharge
{
    public function handle($event)
    {
        $userCount = $event->team->users()->count();

        $event->team->subscription()->updateQuantity($userCount);
    }
}

Made by: @dillinghamio Find More Awesome Spark Stuff Here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment