Siren

FulfillmentStatusChanged

Fires when a fulfillment's status transitions through its lifecycle (pending, processing, complete).

Last updated: April 8, 2026

FulfillmentStatusChanged

As a fulfillment moves through its lifecycle, Siren fires FulfillmentStatusChanged at each status transition. The event captures both the fulfillment’s current state and the status it is transitioning to, giving listeners the context they need to react to specific phases of the payout process.

The event is identified as fulfillment_status_changed and lives in Siren\Fulfillments\Core\Events\FulfillmentStatusChanged.

What does this event carry?

The event provides the Fulfillment model and a newStatus string. The fulfillment model reflects the batch’s state at the time of the event, and newStatus tells you where it is headed. A fulfillment typically moves from pending to processing to complete, though the exact transitions depend on the payout strategy in use.

use Siren\Fulfillments\Core\Events\FulfillmentStatusChanged;

public function handle(Event $event): void
{
    $fulfillment = $event->getFulfillment();
    $newStatus = $event->getNewStatus();
}

When would you use it?

This event is useful for triggering notifications or coordinating with external integrations at specific points in the payout cycle. A listener might send an email to administrators when a fulfillment begins processing, or notify an external accounting system when a fulfillment completes.

Because the event fires on every status transition, listeners should check newStatus to determine whether the transition is one they care about rather than acting on every occurrence.

See the Payment Events overview for how this event fits into the full payment pipeline.