> ## Documentation Index
> Fetch the complete documentation index at: https://docs.subscribd.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Pausing Subscriptions

> Pause billing temporarily without canceling the subscription

# Pausing Subscriptions

Pausing lets a subscriber stop billing temporarily while preserving their account and subscription record. It's a powerful retention tool — users who might otherwise cancel can take a break and return later.

## Pause a subscription

```php theme={null}
use Pixelworxio\Subscribd\Actions\PauseSubscription;

$subscription = $user->subscription();
app(PauseSubscription::class)->execute($subscription);
```

The subscription enters `Paused` status. Billing stops immediately. `paused_at` is set to now and `paused_until` is `null` (manual resume required).

## Pause with an auto-resume date

```php theme={null}
use Carbon\CarbonImmutable;

app(PauseSubscription::class)->execute($subscription, [
    'resume_at' => CarbonImmutable::now()->addWeeks(4),
]);
```

`paused_until` is stored on the subscription. Run `subscribd:expire-subscriptions` on a schedule to auto-resume when the date passes.

## Resume a paused subscription

```php theme={null}
use Pixelworxio\Subscribd\Actions\ResumeSubscription;

app(ResumeSubscription::class)->execute($subscription);
```

This resumes billing at the gateway, clears `paused_at` and `paused_until`, and fires `SubscriptionResumed`.

## Checking pause status

```php theme={null}
$subscription = $user->subscription();

$subscription->status->value;       // 'paused'
$subscription->paused_at;           // when the pause started
$subscription->paused_until;        // auto-resume date, or null
```

## Gating feature access during a pause

A paused subscription is intentionally left in the `Paused` status rather than `Canceled` so your application can distinguish between the two and handle them differently. Gate access as appropriate for your product:

```php theme={null}
// Allow data access but block feature usage during a pause
$subscription = $user->subscription();

if ($subscription->status->value === 'paused') {
    abort(402, 'Your subscription is paused. Resume to continue.');
}
```

Or use Laravel's Gate/Policy:

```php theme={null}
class FeaturePolicy
{
    public function use(User $user): bool
    {
        $status = $user->subscription()?->status->value;
        return in_array($status, ['active', 'trialing', 'grace']);
    }
}
```

## Listening to pause events

```php theme={null}
use Pixelworxio\Subscribd\Events\SubscriptionPaused;
use Pixelworxio\Subscribd\Events\SubscriptionResumed;

Event::listen(SubscriptionPaused::class, function (SubscriptionPaused $event): void {
    Mail::to($event->subscription->billable->billingEmail())
        ->send(new PausedConfirmationMail($event->subscription));
});

Event::listen(SubscriptionResumed::class, function (SubscriptionResumed $event): void {
    Mail::to($event->subscription->billable->billingEmail())
        ->send(new ResumedConfirmationMail($event->subscription));
});
```

## Gateway support

| Gateway    | Native pause support     |
| ---------- | ------------------------ |
| Stripe     | ✅ Yes                    |
| PayPal     | ⚠️ Limited               |
| Braintree  | ❌ No (local status only) |
| Paddle     | ✅ Yes                    |
| FastSpring | ❌ No (local status only) |
| Square     | ❌ No (local status only) |

For gateways without native pause support, Subscribd updates the local subscription status only. Billing will not stop at the gateway level — use `CancelSubscription` with a grace period instead if hard billing stop is required.

## Pause vs. cancel

| Situation                               | Recommended action            |
| --------------------------------------- | ----------------------------- |
| "I need a break but want to come back"  | Pause                         |
| "Traveling for 2 months, won't need it" | Pause with `resume_at`        |
| "I'm done with this product"            | Cancel                        |
| "Too expensive right now"               | Pause or swap to a lower plan |

## The SubscriptionManager component

The `subscription-manager` Livewire component includes pause and resume actions in its management UI:

```blade theme={null}
<livewire:subscribd::subscriber.subscription-manager />
```

See [Livewire Components](/components/livewire) for the full component reference.

## Next steps

* **[Canceling](/subscriptions/canceling)** — Permanently end a subscription
* **[Subscription Status](/subscriptions/status)** — Full status reference
* **[Hooks and Events](/advanced/hooks-and-events)** — All billing events
