PHPackages                             think.studio/laravel-cashier-subscription-pause - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Payment Processing](/categories/payments)
4. /
5. think.studio/laravel-cashier-subscription-pause

ActiveLibrary[Payment Processing](/categories/payments)

think.studio/laravel-cashier-subscription-pause
===============================================

Support of Pausing and Resuming a Subscription.

2.1.1(2y ago)42.0k2MITPHPPHP ^8.1

Since Nov 18Pushed 2y ago1 watchersCompare

[ Source](https://github.com/dev-think-one/laravel-cashier-subscription-pause)[ Packagist](https://packagist.org/packages/think.studio/laravel-cashier-subscription-pause)[ Docs](https://github.com/dev-think-one/laravel-cashier-subscription-pause)[ RSS](/packages/thinkstudio-laravel-cashier-subscription-pause/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (6)Versions (6)Used By (0)

Support of Pausing and Resuming a Subscription.
===============================================

[](#support-of-pausing-and-resuming-a-subscription)

[![Packagist License](https://camo.githubusercontent.com/fb11cf062e3fe1ab6008a948643db58265afb8566f28efff45213748746bca5d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f7468696e6b2e73747564696f2f6c61726176656c2d636173686965722d737562736372697074696f6e2d70617573653f636f6c6f723d253233346463373166)](https://camo.githubusercontent.com/fb11cf062e3fe1ab6008a948643db58265afb8566f28efff45213748746bca5d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f7468696e6b2e73747564696f2f6c61726176656c2d636173686965722d737562736372697074696f6e2d70617573653f636f6c6f723d253233346463373166)[![Packagist Version](https://camo.githubusercontent.com/c1197324c14b6279eb7f37d0d904598a17809a77ca9d9631a751ab8bbb86bfa8/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7468696e6b2e73747564696f2f6c61726176656c2d636173686965722d737562736372697074696f6e2d7061757365)](https://packagist.org/packages/think.studio/laravel-cashier-subscription-pause)[![Total Downloads](https://camo.githubusercontent.com/3c0e20fd43e1b71a05f06ac67ed900ec9395ab749d3c5f3ae0c0479aad37eaf4/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f7468696e6b2e73747564696f2f6c61726176656c2d636173686965722d737562736372697074696f6e2d7061757365)](https://packagist.org/packages/think.studio/laravel-cashier-subscription-pause)[![Build Status](https://camo.githubusercontent.com/ff8c5bf2d045a5aed96fdde63190ac0413c795a9498336c64a8a7b6f6e442009/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6465762d7468696e6b2d6f6e652f6c61726176656c2d636173686965722d737562736372697074696f6e2d70617573652f6261646765732f6275696c642e706e673f623d6d61696e)](https://scrutinizer-ci.com/g/dev-think-one/laravel-cashier-subscription-pause/build-status/main)[![Code Coverage](https://camo.githubusercontent.com/bd322e1c567ae265b3cf00d5388dc55b9dddf779b85bca7058908979082830dd/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6465762d7468696e6b2d6f6e652f6c61726176656c2d636173686965722d737562736372697074696f6e2d70617573652f6261646765732f636f7665726167652e706e673f623d6d61696e)](https://scrutinizer-ci.com/g/dev-think-one/laravel-cashier-subscription-pause/?branch=main)[![Scrutinizer Code Quality](https://camo.githubusercontent.com/7207fdbd924002b9ecaf1a3349e0a8c1b915645b68a3f0e1147f3410d6fc1be8/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6465762d7468696e6b2d6f6e652f6c61726176656c2d636173686965722d737562736372697074696f6e2d70617573652f6261646765732f7175616c6974792d73636f72652e706e673f623d6d61696e)](https://scrutinizer-ci.com/g/dev-think-one/laravel-cashier-subscription-pause/?branch=main)

Installation
------------

[](#installation)

Install the package via composer:

```
composer require think.studio/laravel-cashier-subscription-pause
```

You can publish the migrations files with:

```
php artisan vendor:publish --provider="CashierSubscriptionPause\ServiceProvider" --tag="migrations"
```

Usage
-----

[](#usage)

```
use CashierSubscriptionPause\Eloquent\UsesPauseCollection;
use CashierSubscriptionPause\Eloquent\WithPauseCollection;

class Subscription extends \Laravel\Cashier\Subscription implements WithPauseCollection {

    use UsesPauseCollection;

    protected $table = 'stripe_subscriptions';

    /**
     * The attributes that should be cast to native types.
     *
     * @var array
     */
    protected $casts = [
        'quantity'         => 'integer',
        'pause_collection' => 'array',
    ];
}
```

```
$subscription = $user->subscription( 'main' );

$resumesAt = Carbon::now()->addWeek();
$subscription->pause(WithPauseCollection::BEHAVIOR_MARK_UNCOLLECTIBLE, $resumesAt);
$subscription->unpause();

$subscription->pauseBehaviorMarkUncollectible($resumesAt);
$subscription->pauseBehaviorKeepAsDraft($resumesAt);
$subscription->pauseBehaviorVoid($resumesAt);

$subscription->syncStripePauseCollection();

$subscription->paused());
$subscription->paused(WithPauseCollection::BEHAVIOR_MARK_UNCOLLECTIBLE);
$subscription->paused(WithPauseCollection::BEHAVIOR_KEEP_AS_DRAFT);
$subscription->paused(WithPauseCollection::BEHAVIOR_VOID);
$subscription->pauseResumesAtTimestamp();
$subscription->pauseResumesAt();
```

```
Subscription::query()->paused()->count();
Subscription::query()->notPaused()->count();

Subscription::query()->paused(WithPauseCollection::BEHAVIOR_VOID)->count();
Subscription::query()->notPaused(WithPauseCollection::BEHAVIOR_VOID)->count();

Subscription::query()->paused(WithPauseCollection::BEHAVIOR_MARK_UNCOLLECTIBLE)->count();
Subscription::query()->notPaused(WithPauseCollection::BEHAVIOR_MARK_UNCOLLECTIBLE)->count();

Subscription::query()->paused(WithPauseCollection::BEHAVIOR_KEEP_AS_DRAFT)->count();
Subscription::query()->notPaused(WithPauseCollection::BEHAVIOR_KEEP_AS_DRAFT)->count();
```

Do not use default listener:

```
