Overview
Opscale\NotificationCenter\Nova\Actions\ForceDelivery is a Laravel Nova action available on the Delivery resource detail view. It immediately re-sends a notification to the delivery’s profile on the delivery’s configured channel, skipping all scheduling windows, timeout checks, and status gate-keeping that ExecuteNotificationStrategy normally enforces.
Class signature
Availability
| Property | Value |
|---|---|
$onlyOnDetail | true — only visible on the Delivery detail page |
| Resource | Delivery |
| Fields | None — no form fields required |
What happens when the action runs
Resolve the channel message class
For each selected If no notification class is configured for that channel, the action returns an error immediately:
Delivery model the action reads the channel and looks it up in config('notification-center.messages'):Resolve the profile
The profile is loaded from the delivery relationship:If the profile cannot be found the action returns an error:
Send immediately
The notification class is instantiated with the existing
Delivery model and sent via notify() — bypassing queues, time windows, and the hourly scheduler:handle method signature
The submitted form fields.
ForceDelivery defines no fields, so this object is empty.The collection of
Delivery models to force-send. Each delivery is processed individually in sequence; an error on one delivery halts processing of subsequent ones and returns a danger response.What it bypasses
| Normal constraint | Bypassed? |
|---|---|
Strategy time window (days / hours) | Yes |
Channel timeout (timeout_per_channel) | Yes |
Delivery status guards (OPENED, VERIFIED) | Yes |
| Hourly scheduler | Yes |
Queue delay / retry_interval | Yes |
max_attempts limit | Yes |
When to use ForceDelivery
- Debugging — verify that a channel integration is working correctly without waiting for the scheduler.
- Resending failed deliveries — when a delivery has status
FAILEDdue to a transient provider error and you want to retry immediately without creating a newDeliveryrecord. - Time-sensitive situations — when a scheduled delivery has not fired yet but the recipient needs the notification right now.
- Testing webhooks or receipt tracking — trigger a real send to observe downstream event tracking.
Usage in Nova
Register the action on your Delivery Nova resource:Because
$onlyOnDetail is true, ForceDelivery does not appear in bulk-action menus on the delivery index. You must navigate to an individual delivery’s detail view to trigger it.