webhookEventId); if (! $webhookEvent || ! $webhookEvent->isPending()) { return; } try { Event::dispatch( "commerce.webhook.{$webhookEvent->gateway}.{$webhookEvent->event_type}", [$webhookEvent, $webhookEvent->getDecodedPayload()] ); $webhookEvent->markProcessed(); } catch (\Throwable $e) { $webhookEvent->markFailed($e->getMessage()); Log::error('Queued webhook event processing failed', [ 'webhook_event_id' => $webhookEvent->id, 'gateway' => $webhookEvent->gateway, 'event_type' => $webhookEvent->event_type, 'error' => $e->getMessage(), ]); throw $e; } } }