statusTransitionCause property, abandoned because * Lunar\Models\Order's $guarded = [] means Eloquent tries to persist any * property set that way as a real column. OrderStatusWriter::markPaid() * dispatches OrderPaidChanged directly instead. */ class OrderObserver { public function updated(Order $order): void { if ($order->wasChanged('status')) { OrderStatusUpdated::dispatch( $order, $order->getOriginal('status'), $order->status, ); } } }