Output:
Wall time: 0.3494 seconds
Output:
[{"type":"text","text":"[2026-05-03 21:32:56] local.WARNING: Detected multiple instances of Livewire running {\"url\":\"http://shop.test/account/login\",\"user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36\",\"timestamp\":\"2026-05-03T21:32:55.938Z\"} \n\n\n[2026-05-03 21:32:56] local.WARNING: Detected multiple instances of Livewire running {\"url\":\"http://shop.test/account/login\",\"user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36\",\"timestamp\":\"2026-05-03T21:32:55.938Z\"} \n\n\n[2026-05-03 21:32:56] local.WARNING: Detected multiple instances of Alpine running {\"url\":\"http://shop.test/account/login\",\"user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36\",\"timestamp\":\"2026-05-03T21:32:55.938Z\"} \n\n\n[2026-05-03 21:32:56] local.WARNING: Detected multiple instances of Alpine running {\"url\":\"http://shop.test/account/login\",\"user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36\",\"timestamp\":\"2026-05-03T21:32:55.938Z\"} \n\n\n[2026-05-03 21:32:56] local.WARNING: Alpine Expression Error: Illegal invocation\n\nExpression: \"open\" null null null open false 177 null null null null  {\"url\":\"http://shop.test/account/login\",\"user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36\",\"timestamp\":\"2026-05-03T21:32:55.969Z\"} \n\n\n[2026-05-03 21:32:56] local.WARNING: Alpine Expression Error: Illegal invocation\n\nExpression: \"open\" null null null open false 177 null null null null  {\"url\":\"http://shop.test/account/login\",\"user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36\",\"timestamp\":\"2026-05-03T21:32:55.968Z\"} \n\n\n[2026-05-03 21:32:56] local.WARNING: Alpine Expression Error: fluxInputViewable is not defined\n\nExpression: \"fluxInputViewable\" null null null open false 177 null null null null null   {\"url\":\"http://shop.test/account/login\",\"user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36\",\"timestamp\":\"2026-05-03T21:32:55.969Z\"} \n\n\n[2026-05-03 21:32:56] local.WARNING: Alpine Expression Error: fluxInputViewable is not defined\n\nExpression: \"fluxInputViewable\" null null null open false 177 null null null null null   {\"url\":\"http://shop.test/account/login\",\"user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36\",\"timestamp\":\"2026-05-03T21:32:55.969Z\"} \n\n\n[2026-05-03 21:32:56] local.WARNING: Livewire: missing closing tags found. Ensure your template elements contain matching closing tags. Y1jQ8DDcYzgTQ9o78LDp storefront.account.auth.login null null null false Y1jQ8DDcYzgTQ9o78LDp storefront.account.auth.login null null null false null null null 1 null {\"url\":\"http://shop.test/account/login\",\"user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36\",\"timestamp\":\"2026-05-03T21:32:55.972Z\"} \n\n\n[2026-05-03 21:32:56] local.WARNING: Livewire: missing closing tags found. Ensure your template elements contain matching closing tags. Y1jQ8DDcYzgTQ9o78LDp storefront.account.auth.login null null null false Y1jQ8DDcYzgTQ9o78LDp storefront.account.auth.login null null null false null null null 1 null {\"url\":\"http://shop.test/account/login\",\"user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36\",\"timestamp\":\"2026-05-03T21:32:55.972Z\"} \n\n\n[2026-05-03 21:32:56] local.ERROR: Uncaught TypeError: Illegal invocation http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae 1424 26 TypeError Illegal invocation TypeError: Illegal invocation\n    at runIfTypeOfFunction (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1424:26)\n    at http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1412:11\n    at tryCatch (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1309:14)\n    at http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:3859:19\n    at reactiveEffect (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:2693:18)\n    at Object.effect2 [as effect] (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:2668:7)\n    at effect (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:935:35)\n    at wrappedEffect (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:951:29)\n    at handler2 (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:3859:5)\n    at flushHandlers (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1527:48) {\"url\":\"http://shop.test/account/login\",\"user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36\",\"timestamp\":\"2026-05-03T21:32:55.973Z\"} \n\n\n[2026-05-03 21:32:56] local.ERROR: Uncaught TypeError: Illegal invocation http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae 1424 26 TypeError Illegal invocation TypeError: Illegal invocation\n    at runIfTypeOfFunction (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1424:26)\n    at http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1412:11\n    at tryCatch (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1309:14)\n    at http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:3859:19\n    at reactiveEffect (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:2693:18)\n    at Object.effect2 [as effect] (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:2668:7)\n    at effect (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:935:35)\n    at wrappedEffect (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:951:29)\n    at handler2 (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:3859:5)\n    at flushHandlers (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1527:48) {\"url\":\"http://shop.test/account/login\",\"user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36\",\"timestamp\":\"2026-05-03T21:32:55.973Z\"} \n\n\n[2026-05-03 21:32:56] local.ERROR: Uncaught TypeError: Illegal invocation http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae 1424 26 TypeError Illegal invocation TypeError: Illegal invocation\n    at runIfTypeOfFunction (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1424:26)\n    at http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1412:11\n    at tryCatch (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1309:14)\n    at http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:3859:19\n    at reactiveEffect (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:2693:18)\n    at Object.effect2 [as effect] (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:2668:7)\n    at effect (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:935:35)\n    at wrappedEffect (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:951:29)\n    at handler2 (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:3859:5)\n    at flushHandlers (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1527:48) {\"url\":\"http://shop.test/account/login\",\"user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36\",\"timestamp\":\"2026-05-03T21:32:55.973Z\"} \n\n\n[2026-05-03 21:32:56] local.ERROR: Uncaught TypeError: Illegal invocation http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae 1424 26 TypeError Illegal invocation TypeError: Illegal invocation\n    at runIfTypeOfFunction (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1424:26)\n    at http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1412:11\n    at tryCatch (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1309:14)\n    at http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:3859:19\n    at reactiveEffect (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:2693:18)\n    at Object.effect2 [as effect] (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:2668:7)\n    at effect (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:935:35)\n    at wrappedEffect (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:951:29)\n    at handler2 (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:3859:5)\n    at flushHandlers (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1527:48) {\"url\":\"http://shop.test/account/login\",\"user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36\",\"timestamp\":\"2026-05-03T21:32:55.973Z\"} \n\n\n[2026-05-03 21:32:56] local.ERROR: Uncaught ReferenceError: fluxInputViewable is not defined http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae 1330 7 ReferenceError fluxInputViewable is not defined ReferenceError: fluxInputViewable is not defined\n    at [Alpine] fluxInputViewable (eval at safeAsyncFunction (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1385:21), <anonymous>:3:32)\n    at http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1410:28\n    at tryCatch (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1309:14)\n    at evaluate (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1343:34)\n    at Function.<anonymous> (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:3890:17)\n    at flushHandlers (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1527:48)\n    at stopDeferring (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1532:7)\n    at deferHandlingDirectives (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1535:5)\n    at initTree (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1732:5)\n    at http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1678:7 {\"url\":\"http://shop.test/account/login\",\"user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36\",\"timestamp\":\"2026-05-03T21:32:55.973Z\"} \n\n\n[2026-05-03 21:32:56] local.ERROR: Uncaught ReferenceError: fluxInputViewable is not defined http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae 1330 7 ReferenceError fluxInputViewable is not defined ReferenceError: fluxInputViewable is not defined\n    at [Alpine] fluxInputViewable (eval at safeAsyncFunction (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1385:21), <anonymous>:3:32)\n    at http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1410:28\n    at tryCatch (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1309:14)\n    at evaluate (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1343:34)\n    at Function.<anonymous> (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:3890:17)\n    at flushHandlers (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1527:48)\n    at stopDeferring (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1532:7)\n    at deferHandlingDirectives (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1535:5)\n    at initTree (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1732:5)\n    at http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1678:7 {\"url\":\"http://shop.test/account/login\",\"user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36\",\"timestamp\":\"2026-05-03T21:32:55.973Z\"} \n\n\n[2026-05-03 21:32:56] local.ERROR: Uncaught ReferenceError: fluxInputViewable is not defined http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae 1330 7 ReferenceError fluxInputViewable is not defined ReferenceError: fluxInputViewable is not defined\n    at [Alpine] fluxInputViewable (eval at safeAsyncFunction (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1385:21), <anonymous>:3:32)\n    at http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1410:28\n    at tryCatch (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1309:14)\n    at evaluate (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1343:34)\n    at Function.<anonymous> (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:3890:17)\n    at flushHandlers (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1527:48)\n    at stopDeferring (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1532:7)\n    at deferHandlingDirectives (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1535:5)\n    at initTree (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1732:5)\n    at http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1678:7 {\"url\":\"http://shop.test/account/login\",\"user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36\",\"timestamp\":\"2026-05-03T21:32:55.973Z\"} \n\n\n[2026-05-03 21:32:56] local.ERROR: Uncaught ReferenceError: fluxInputViewable is not defined http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae 1330 7 ReferenceError fluxInputViewable is not defined ReferenceError: fluxInputViewable is not defined\n    at [Alpine] fluxInputViewable (eval at safeAsyncFunction (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1385:21), <anonymous>:3:32)\n    at http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1410:28\n    at tryCatch (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1309:14)\n    at evaluate (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1343:34)\n    at Function.<anonymous> (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:3890:17)\n    at flushHandlers (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1527:48)\n    at stopDeferring (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1532:7)\n    at deferHandlingDirectives (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1535:5)\n    at initTree (http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1732:5)\n    at http://shop.test/livewire-6701cc17/livewire.js?id=cfc5c1ae:1678:7 {\"url\":\"http://shop.test/account/login\",\"user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36\",\"timestamp\":\"2026-05-03T21:32:55.973Z\"} \n\n\n[2026-05-03 21:32:56] local.WARNING: Livewire: missing closing tags found. Ensure your template elements contain matching closing tags. Y1jQ8DDcYzgTQ9o78LDp storefront.account.auth.login null null null false Y1jQ8DDcYzgTQ9o78LDp storefront.account.auth.login null null null false null null null 1 null {\"url\":\"http://shop.test/account/login\",\"user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36\",\"timestamp\":\"2026-05-03T21:32:55.973Z\"} \n\n\n[2026-05-03 21:32:56] local.WARNING: Livewire: missing closing tags found. Ensure your template elements contain matching closing tags. Y1jQ8DDcYzgTQ9o78LDp storefront.account.auth.login null null null false Y1jQ8DDcYzgTQ9o78LDp storefront.account.auth.login null null null false null null null 1 null {\"url\":\"http://shop.test/account/login\",\"user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36\",\"timestamp\":\"2026-05-03T21:32:55.973Z\"} \n"}]


The browser smoke passed on `/admin/apps`, app detail, and `/admin/developers`, including token generation and webhook creation, with no current Playwright console warnings/errors. I’m running the full Pest suite next.


Output:
Chunk ID: e6a578
Wall time: 1.0014 seconds
Process running with session ID 95549
Original token count: 1
Output:

  .


Output:
Chunk ID: c27769
Wall time: 5.0022 seconds
Process running with session ID 95549
Original token count: 8
Output:
............................⨯.


Output:
Chunk ID: 516911
Wall time: 5.0007 seconds
Process running with session ID 95549
Original token count: 17
Output:
..........⨯.........⨯........................
  ..........⨯.


Output:
Chunk ID: 4d650d
Wall time: 5.0006 seconds
Process running with session ID 95549
Original token count: 22
Output:
................................................................
  ..............⨯...


  .............................⨯...........⨯.........⨯........................
  ..........⨯.................................................................
  ..............⨯...............
  ────────────────────────────────────────────────────────────────────────────
   FAILED  Tests\Feature\Admin\OrderManagementTest > ad…  ConnectionException
  cURL error 6: Could not resolve host: acme-fashion.integrations.example (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://acme-fashion.integrations.example/webhooks/fulfillment.created

  at vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:277
    273▕         }
    274▕
    275▕         // Create a connection exception if it was a specific error code.
    276▕         $error = isset($connectionErrors[$easy->errno])
  ➜ 277▕             ? new ConnectException($message, $easy->request, null, $ctx)
    278▕             : new RequestException($message, $easy->request, $easy->response, null, $ctx);
    279▕
    280▕         return P\Create::rejectionFor($error);
    281▕     }

      +22 vendor frames
  23  app/Jobs/DeliverWebhook.php:71
      +22 vendor frames
  46  app/Services/WebhookService.php:45

  ────────────────────────────────────────────────────────────────────────────
   FAILED  Tests\Feature\Api\AdminOrderApiTest > admin order api creates ref…
  Expected response status code [201] but received 500.
Failed asserting that 500 is identical to 201.

The following exception occurred during the last request:

GuzzleHttp\Exception\ConnectException: cURL error 6: Could not resolve host: acme-fashion.integrations.example (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://acme-fashion.integrations.example/webhooks/fulfillment.created in /Users/fabianwesner/Herd/shop/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:277
Stack trace:
#0 /Users/fabianwesner/Herd/shop/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php(207): GuzzleHttp\Handler\CurlFactory::createRejection(Object(GuzzleHttp\Handler\EasyHandle), Array)
#1 /Users/fabianwesner/Herd/shop/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php(159): GuzzleHttp\Handler\CurlFactory::finishError(Object(GuzzleHttp\Handler\CurlHandler), Object(GuzzleHttp\Handler\EasyHandle), Object(GuzzleHttp\Handler\CurlFactory))
#2 /Users/fabianwesner/Herd/shop/vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php(47): GuzzleHttp\Handler\CurlFactory::finish(Object(GuzzleHttp\Handler\CurlHandler), Object(GuzzleHttp\Handler\EasyHandle), Object(GuzzleHttp\Handler\CurlFactory))
#3 /Users/fabianwesner/Herd/shop/vendor/guzzlehttp/guzzle/src/Handler/Proxy.php(28): GuzzleHttp\Handler\CurlHandler->__invoke(Object(GuzzleHttp\Psr7\Request), Array)
#4 /Users/fabianwesner/Herd/shop/vendor/guzzlehttp/guzzle/src/Handler/Proxy.php(48): GuzzleHttp\Handler\Proxy::{closure:GuzzleHttp\Handler\Proxy::wrapSync():27}(Object(GuzzleHttp\Psr7\Request), Array)
#5 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Http/Client/PendingRequest.php(1521): GuzzleHttp\Handler\Proxy::{closure:GuzzleHttp\Handler\Proxy::wrapStreaming():47}(Object(GuzzleHttp\Psr7\Request), Array)
#6 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Http/Client/PendingRequest.php(1480): Illuminate\Http\Client\PendingRequest->{closure:{closure:Illuminate\Http\Client\PendingRequest::buildStubHandler():1503}:1504}(Object(GuzzleHttp\Psr7\Request), Array)
#7 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Http/Client/PendingRequest.php(1466): Illuminate\Http\Client\PendingRequest->{closure:{closure:Illuminate\Http\Client\PendingRequest::buildRecorderHandler():1478}:1479}(Object(GuzzleHttp\Psr7\Request), Array)
#8 /Users/fabianwesner/Herd/shop/vendor/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php(64): Illuminate\Http\Client\PendingRequest->{closure:{closure:Illuminate\Http\Client\PendingRequest::buildBeforeSendingHandler():1464}:1465}(Object(GuzzleHttp\Psr7\Request), Array)
#9 /Users/fabianwesner/Herd/shop/vendor/guzzlehttp/guzzle/src/Middleware.php(38): GuzzleHttp\PrepareBodyMiddleware->__invoke(Object(GuzzleHttp\Psr7\Request), Array)
#10 /Users/fabianwesner/Herd/shop/vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php(71): GuzzleHttp\Middleware::{closure:{closure:GuzzleHttp\Middleware::cookies():28}:29}(Object(GuzzleHttp\Psr7\Request), Array)
#11 /Users/fabianwesner/Herd/shop/vendor/guzzlehttp/guzzle/src/Middleware.php(63): GuzzleHttp\RedirectMiddleware->__invoke(Object(GuzzleHttp\Psr7\Request), Array)
#12 /Users/fabianwesner/Herd/shop/vendor/guzzlehttp/guzzle/src/HandlerStack.php(75): GuzzleHttp\Middleware::{closure:{clo…89129 chars truncated…pi\StorefrontOrderApiTest->__runTest(Object(Closure))
#97 /Users/fabianwesner/Herd/shop/vendor/phpunit/phpunit/src/Framework/TestCase.php(1332): P\Tests\Feature\Api\StorefrontOrderApiTest->__pest_evaluable_storefront_order_api_pays_a_checkout_and_exposes_token_gated_order_lookup()
#98 /Users/fabianwesner/Herd/shop/vendor/phpunit/phpunit/src/Framework/TestCase.php(519): PHPUnit\Framework\TestCase->runTest()
#99 /Users/fabianwesner/Herd/shop/vendor/phpunit/phpunit/src/Framework/TestRunner/TestRunner.php(99): PHPUnit\Framework\TestCase->runBare()
#100 /Users/fabianwesner/Herd/shop/vendor/phpunit/phpunit/src/Framework/TestCase.php(359): PHPUnit\Framework\TestRunner->run(Object(P\Tests\Feature\Api\StorefrontOrderApiTest))
#101 /Users/fabianwesner/Herd/shop/vendor/phpunit/phpunit/src/Framework/TestSuite.php(374): PHPUnit\Framework\TestCase->run()
#102 /Users/fabianwesner/Herd/shop/vendor/phpunit/phpunit/src/Framework/TestSuite.php(374): PHPUnit\Framework\TestSuite->run()
#103 /Users/fabianwesner/Herd/shop/vendor/phpunit/phpunit/src/Framework/TestSuite.php(374): PHPUnit\Framework\TestSuite->run()
#104 /Users/fabianwesner/Herd/shop/vendor/phpunit/phpunit/src/TextUI/TestRunner.php(64): PHPUnit\Framework\TestSuite->run()
#105 /Users/fabianwesner/Herd/shop/vendor/phpunit/phpunit/src/TextUI/Application.php(229): PHPUnit\TextUI\TestRunner->run(Object(PHPUnit\TextUI\Configuration\Configuration), Object(PHPUnit\Runner\ResultCache\DefaultResultCache), Object(PHPUnit\Framework\TestSuite))
#106 /Users/fabianwesner/Herd/shop/vendor/pestphp/pest/src/Kernel.php(103): PHPUnit\TextUI\Application->run(Array)
#107 /Users/fabianwesner/Herd/shop/vendor/pestphp/pest/bin/pest(184): Pest\Kernel->handle(Array, Array)
#108 /Users/fabianwesner/Herd/shop/vendor/pestphp/pest/bin/pest(192): {closure:/Users/fabianwesner/Herd/shop/vendor/pestphp/pest/bin/pest:18}()
#109 {main}

----------------------------------------------------------------------------------

cURL error 6: Could not resolve host: acme-fashion.integrations.example (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://acme-fashion.integrations.example/webhooks/order.created

  at tests/Feature/Api/StorefrontOrderApiTest.php:109
    105▕             'card_cvc' => '123',
    106▕         ]);
    107▕
    108▕     $payResponse
  ➜ 109▕         ->assertOk()
    110▕         ->assertJsonPath('data.order_number', '#1001')
    111▕         ->assertJsonPath('data.financial_status', 'paid')
    112▕         ->assertJsonCount(1, 'data.lines');
    113▕

  ────────────────────────────────────────────────────────────────────────────
   FAILED  Tests\Feature\Catalog\CatalogUiTest > admin…   ConnectionException
  cURL error 6: Could not resolve host: acme-fashion.integrations.example (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://acme-fashion.integrations.example/webhooks/product.updated

  at vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:277
    273▕         }
    274▕
    275▕         // Create a connection exception if it was a specific error code.
    276▕         $error = isset($connectionErrors[$easy->errno])
  ➜ 277▕             ? new ConnectException($message, $easy->request, null, $ctx)
    278▕             : new RequestException($message, $easy->request, $easy->response, null, $ctx);
    279▕
    280▕         return P\Create::rejectionFor($error);
    281▕     }

      +22 vendor frames
  23  app/Jobs/DeliverWebhook.php:71
      +22 vendor frames
  46  app/Services/WebhookService.php:45

  ────────────────────────────────────────────────────────────────────────────
   FAILED  Tests\Feature\Storefront\OrderViewsTest > ch…  ConnectionException
  cURL error 6: Could not resolve host: acme-fashion.integrations.example (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://acme-fashion.integrations.example/webhooks/order.created

  at vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:277
    273▕         }
    274▕
    275▕         // Create a connection exception if it was a specific error code.
    276▕         $error = isset($connectionErrors[$easy->errno])
  ➜ 277▕             ? new ConnectException($message, $easy->request, null, $ctx)
    278▕             : new RequestException($message, $easy->request, $easy->response, null, $ctx);
    279▕
    280▕         return P\Create::rejectionFor($error);
    281▕     }

      +22 vendor frames
  23  app/Jobs/DeliverWebhook.php:71
      +22 vendor frames
  46  app/Services/WebhookService.php:45

  Tests:    5 failed, 177 passed (869 assertions)
  Duration: 36.08s


Output:
Chunk ID: a5c85c
Wall time: 0.0001 seconds
Process exited with code 2
Original token count: 24779
Output:
Total output lines: 591

............
  ────────────────────────────────────────────────────────────────────────────
   FAILED  Tests\Feature\Admin\OrderManagementTest > ad…  ConnectionException
  cURL error 6: Could not resolve host: acme-fashion.integrations.example (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://acme-fashion.integrations.example/webhooks/fulfillment.created

  at vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:277
    273▕         }
    274▕
    275▕         // Create a connection exception if it was a specific error code.
    276▕         $error = isset($connectionErrors[$easy->errno])
  ➜ 277▕             ? new ConnectException($message, $easy->request, null, $ctx)
    278▕             : new RequestException($message, $easy->request, $easy->response, null, $ctx);
    279▕
    280▕         return P\Create::rejectionFor($error);
    281▕     }

      +22 vendor frames
  23  app/Jobs/DeliverWebhook.php:71
      +22 vendor frames
  46  app/Services/WebhookService.php:45

  ────────────────────────────────────────────────────────────────────────────
   FAILED  Tests\Feature\Api\AdminOrderApiTest > admin order api creates ref…
  Expected response status code [201] but received 500.
Failed asserting that 500 is identical to 201.

The following exception occurred during the last request:

GuzzleHttp\Exception\ConnectException: cURL error 6: Could not resolve host: acme-fashion.integrations.example (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://acme-fashion.integrations.example/webhooks/fulfillment.created in /Users/fabianwesner/Herd/shop/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:277
Stack trace:
#0 /Users/fabianwesner/Herd/shop/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php(207): GuzzleHttp\Handler\CurlFactory::createRejection(Object(GuzzleHttp\Handler\EasyHandle), Array)
#1 /Users/fabianwesner/Herd/shop/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php(159): GuzzleHttp\Handler\CurlFactory::finishError(Object(GuzzleHttp\Handler\CurlHandler), Object(GuzzleHttp\Handler\EasyHandle), Object(GuzzleHttp\Handler\CurlFactory))
#2 /Users/fabianwesner/Herd/shop/vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php(47): GuzzleHttp\Handler\CurlFactory::finish(Object(GuzzleHttp\Handler\CurlHandler), Object(GuzzleHttp\Handler\EasyHandle), Object(GuzzleHttp\Handler\CurlFactory))
#3 /Users/fabianwesner/Herd/shop/vendor/guzzlehttp/guzzle/src/Handler/Proxy.php(28): GuzzleHttp\Handler\CurlHandler->__invoke(Object(GuzzleHttp\Psr7\Request), Array)
#4 /Users/fabianwesner/Herd/shop/vendor/guzzlehttp/guzzle/src/Handler/Proxy.php(48): GuzzleHttp\Handler\Proxy::{closure:GuzzleHttp\Handler\Proxy::wrapSync():27}(Object(GuzzleHttp\Psr7\Request), Array)
#5 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Http/Client/PendingRequest.php(1521): GuzzleHttp\Handler\Proxy::{closure:GuzzleHttp\Handler\Proxy::wrapStreaming():47}(Object(GuzzleHttp\Psr7\Request), Array)
#6 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Http/Client/PendingRequest.php(1480): Illuminate\Http\Client\PendingRequest->{closure:{closure:Illuminate\Http\Client\PendingRequest::buildStubHandler():1503}:1504}(Object(GuzzleHttp\Psr7\Request), Array)
#7 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Http/Client/PendingRequest.php(1466): Illuminate\Http\Client\PendingRequest->{closure:{closure:Illuminate\Http\Client\PendingRequest::buildRecorderHandler():1478}:1479}(Object(GuzzleHttp\Psr7\Request), Array)
#8 /Users/fabianwesner/Herd/shop/vendor/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php(64): Illuminate\Http\Client\PendingRequest->{closure:{closure:Illuminate\Http\Client\PendingRequest::buildBeforeSendingHandler():1464}:1465}(Object(GuzzleHttp\Psr7\Request), Array)
#9 /Users/fabianwesner/Herd/shop/vendor/guzzlehttp/guzzle/src/Middleware.php(38): GuzzleHttp\PrepareBodyMiddleware->__invoke(Object(GuzzleHttp\Psr7\Request), Array)
#10 /Users/fabianwesner/Herd/shop/vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php(71): GuzzleHttp\Middleware::{closure:{closure:GuzzleHttp\Middleware::cookies():28}:29}(Object(GuzzleHttp\Psr7\Request), Array)
#11 /Users/fabianwesner/Herd/shop/vendor/guzzlehttp/guzzle/src/Middleware.php(63): GuzzleHttp\RedirectMiddleware->__invoke(Object(GuzzleHttp\Psr7\Request), Array)
#12 /Users/fabianwesner/Herd/shop/vendor/guzzlehttp/guzzle/src/HandlerStack.php(75): GuzzleHttp\Middleware::{closure:{closure:GuzzleHttp\Middleware::httpErrors():60}:61}(Object(GuzzleHttp\Psr7\Request), Array)
#13 /Users/fabianwesner/Herd/shop/vendor/guzzlehttp/guzzle/src/Client.php(333): GuzzleHttp\HandlerStack->__invoke(Object(GuzzleHttp\Psr7\Request), Array)
#14 /Users/fabianwesner/Herd/shop/vendor/guzzlehttp/guzzle/src/Client.php(169): GuzzleHttp\Client->transfer(Object(GuzzleHttp\Psr7\Request), Array)
#15 /Users/fabianwesner/Herd/shop/vendor/guzzlehttp/guzzle/src/Client.php(189): GuzzleHttp\Client->requestAsync('POST', Object(GuzzleHttp\Psr7\Uri), Array)
#16 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Http/Client/PendingRequest.php(1306): GuzzleHttp\Client->request('POST', 'https://acme-fa...', Array)
#17 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Http/Client/PendingRequest.php(1043): Illuminate\Http\Client\PendingRequest->sendRequest('POST', 'https://acme-fa...', Array)
#18 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Support/helpers.php(327): Illuminate\Http\Client\PendingRequest->{closure:Illuminate\Http\Client\PendingRequest::send():1041}(1)
#19 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Http/Client/PendingRequest.php(1041): retry(0, Object(Closure), 100, Object(Closure))
#20 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Http/Client/PendingRequest.php(885): Illuminate\Http\Client\PendingRequest->send('POST', 'https://acme-fa...', Array)
#21 /Users/fabianwesner/Herd/shop/app/Jobs/DeliverWebhook.php(71): Illuminate\Http\Client\PendingRequest->post('https://acme-fa...')
#22 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): App\Jobs\DeliverWebhook->handle(Object(App\Services\WebhookService))
#23 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\Container\BoundMethod::{closure:Illuminate\Container\BoundMethod::call():35}()
#24 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\Container\Util::unwrapIfClosure(Object(Closure))
#25 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Array, Object(Closure))
#26 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Container/Container.php(799): Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), Array, Array, NULL)
#27 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(129): Illuminate\Container\Container->call(Array)
#28 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Bus\Dispatcher->{closure:Illuminate\Bus\Dispatcher::dispatchNow():126}(Object(App\Jobs\DeliverWebhook))
#29 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\Pipeline\Pipeline->{closure:Illuminate\Pipeline\Pipeline::prepareDestination():178}(Object(App\Jobs\DeliverWebhook))
#30 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(133): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#31 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(136): Illuminate\Bus\Dispatcher->dispatchNow(Object(App\Jobs\DeliverWebhook), false)
#32 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Queue\CallQueuedHandler->{closure:Illuminate\Queue\CallQueuedHandler::dispatchThroughMiddleware():129}(Object(App\Jobs\DeliverWebhook))
#33 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\Pipeline\Pipeline->{closure:Illuminate\Pipeline\Pipeline::prepareDestination():178}(Object(App\Jobs\DeliverWebhook))
#34 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(129): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#35 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(70): Illuminate\Queue\CallQueuedHandler->dispatchThroughMiddleware(Object(Illuminate\Queue\Jobs\SyncJob), Object(App\Jobs\DeliverWebhook))
#36 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php(102): Illuminate\Queue\CallQueuedHandler->call(Object(Illuminate\Queue\Jobs\SyncJob), Array)
#37 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Queue/SyncQueue.php(131): Illuminate\Queue\Jobs\Job->fire()
#38 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Queue/SyncQueue.php(111): Illuminate\Queue\SyncQueue->executeJob(Object(App\Jobs\DeliverWebhook), '', NULL)
#39 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(246): Illuminate\Queue\SyncQueue->push(Object(App\Jobs\DeliverWebhook), '', NULL)
#40 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(230): Illuminate\Bus\Dispatcher->pushCommandToQueue(Object(Illuminate\Queue\SyncQueue), Object(App\Jobs\DeliverWebhook))
#41 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(80): Illuminate\Bus\Dispatcher->dispatchToQueue(Object(App\Jobs\DeliverWebhook))
#42 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Foundation/Bus/PendingDispatch.php(252): Illuminate\Bus\Dispatcher->dispatch(Object(App\Jobs\DeliverWebhook))
#43 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Foundation/Bus/Dispatchable.php(19): Illuminate\Foundation\Bus\PendingDispatch->__destruct()
#44 /Users/fabianwesner/Herd/shop/app/Services/WebhookService.php(45): App\Jobs\DeliverWebhook::dispatch(1, 'fulfillment.cre...', Array)
#45 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(275): App\Services\WebhookService->{closure:App\Services\WebhookService::dispatch():37}(Object(App\Models\WebhookSubscription), 0)
#46 /Users/fabianwesner/Herd/shop/app/Services/WebhookService.php(37): Illuminate\Support\Collection->each(Object(Closure))
#47 /Users/fabianwesner/Herd/shop/app/Listeners/DispatchWebhooks.php(77): App\Services\WebhookService->dispatch(Object(App\Models\Store), 'fulfillment.cre...', Array)
#48 /Users/fabianwesner/Herd/shop/app/Listeners/DispatchWebhooks.php(35): App\Listeners\DispatchWebhooks->dispatchFulfillment(Object(App\Models\Fulfillment), App\Enums\WebhookEventType::FulfillmentCreated)
#49 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(512): App\Listeners\DispatchWebhooks->handle(Object(App\Events\FulfillmentCreated))
#50 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(319): Illuminate\Events\Dispatcher->{closure:Illuminate\Events\Dispatcher::createClassListener():505}('App\\Events\\Fulf...', Array)
#51 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(299): Illuminate\Events\Dispatcher->invokeListeners('App\\Events\\Fulf...', Array, false)
#52 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php(505): Illuminate\Events\Dispatcher->dispatch(Object(App\Events\FulfillmentCreated))
#53 /Users/fabianwesner/Herd/shop/app/Services/FulfillmentService.php(71): event(Object(App\Events\FulfillmentCreated))
#54 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php(35): App\Services\FulfillmentService->{closure:App\Services\FulfillmentService::create():28}(Object(Illuminate\Database\SQLiteConnection))
#55 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php(491): Illuminate\Database\Connection->transaction(Object(Closure))
#56 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(363): Illuminate\Database\DatabaseManager->__call('transaction', Array)
#57 /Users/fabianwesner/Herd/shop/app/Services/FulfillmentService.php(28): Illuminate\Support\Facades\Facade::__callStatic('transaction', Array)
#58 /Users/fabianwesner/Herd/shop/app/Http/Controllers/Api/Admin/V1/OrderFulfillmentController.php(23): App\Services\FulfillmentService->create(Object(App\Models\Order), Array, Array)
#59 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\Http\Controllers\Api\Admin\V1\OrderFulfillmentController->store(Object(App\Http\Requests\Api\Admin\V1\CreateOrderFulfillmentRequest), Object(App\Models\Store), Object(App\Models\Order), Object(App\Services\FulfillmentService))
#60 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(App\Http\Controllers\Api\Admin\V1\OrderFulfillmentController), 'store')
#61 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\Routing\Route->runController()
#62 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\Routing\Route->run()
#63 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Routing\Router->{closure:Illuminate\Routing\Router::runRouteWithinStack():821}(Object(Illuminate\Http\Request))
#64 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\Pipeline\Pipeline->{closure:Illuminate\Pipeline\Pipeline::prepareDestination():178}(Object(Illuminate\Http\Request))
#65 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Routing\Middleware\SubstituteBindings->handle(Object(Illuminate\Http\Request), Object(Closure))
#66 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(166): Illuminate\Pipeline\Pipeline->{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}(Object(Illuminate\Http\Request))
#67 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(93): Illuminate\Routing\Middleware\ThrottleRequests->handleRequest(Object(Illuminate\Http\Request), Object(Closure), Array)
#68 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Routing\Middleware\ThrottleRequests->handle(Object(Illuminate\Http\Request), Object(Closure), '60', '1')
#69 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php(63): Illuminate\Pipeline\Pipeline->{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}(Object(Illuminate\Http\Request))
#70 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Auth\Middleware\Authenticate->handle(Object(Illuminate\Http\Request), Object(Closure))
#71 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\Pipeline\Pipeline->{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}(Object(Illuminate\Http\Request))
#72 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#73 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#74 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\Routing\Router->runRoute(Object(Illuminate\Http\Request), Object(Illuminate\Routing\Route))
#75 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#76 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#77 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Foundation\Http\Kernel->{closure:Illuminate\Foundation\Http\Kernel::dispatchToRouter():197}(Object(Illuminate\Http\Request))
#78 /Users/fabianwesner/Herd/shop/vendor/livewire/livewire/src/Features/SupportDisablingBackButtonCache/DisableBackButtonCacheMiddleware.php(19): Illuminate\Pipeline\Pipeline->{closure:Illuminate\Pipeline\Pipeline::prepareDestination():178}(Object(Illuminate\Http\Request))
#79 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Livewire\Features\SupportDisablingBackButtonCache\DisableBackButtonCacheMiddleware->handle(Object(Illuminate\Http\Request), Object(Closure))
#80 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}(Object(Illuminate\Http\Request))
#81 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#82 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull->handle(Object(Illuminate\Http\Request), Object(Closure))
#83 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}(Object(Illuminate\Http\Request))
#84 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#85 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Foundation\Http\Middleware\TrimStrings->handle(Object(Illuminate\Http\Request), Object(Closure))
#86 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}(Object(Illuminate\Http\Request))
#87 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Http\Middleware\ValidatePostSize->handle(Object(Illuminate\Http\Request), Object(Closure))
#88 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\Pipeline\Pipeline->{closure:{closure:Illuminate\Pipe…14779 tokens truncated…->pushCommandToQueue(Object(Illuminate\Queue\SyncQueue), Object(App\Jobs\DeliverWebhook))
#24 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(80): Illuminate\Bus\Dispatcher->dispatchToQueue(Object(App\Jobs\DeliverWebhook))
#25 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Foundation/Bus/PendingDispatch.php(252): Illuminate\Bus\Dispatcher->dispatch(Object(App\Jobs\DeliverWebhook))
#26 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Foundation/Bus/Dispatchable.php(19): Illuminate\Foundation\Bus\PendingDispatch->__destruct()
#27 /Users/fabianwesner/Herd/shop/app/Services/WebhookService.php(45): App\Jobs\DeliverWebhook::dispatch(1, 'order.created', Array)
#28 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(275): App\Services\WebhookService->{closure:App\Services\WebhookService::dispatch():37}(Object(App\Models\WebhookSubscription), 0)
#29 /Users/fabianwesner/Herd/shop/app/Services/WebhookService.php(37): Illuminate\Support\Collection->each(Object(Closure))
#30 /Users/fabianwesner/Herd/shop/app/Listeners/DispatchWebhooks.php(61): App\Services\WebhookService->dispatch(Object(App\Models\Store), 'order.created', Array)
#31 /Users/fabianwesner/Herd/shop/app/Listeners/DispatchWebhooks.php(31): App\Listeners\DispatchWebhooks->dispatchOrder(Object(App\Models\Order), App\Enums\WebhookEventType::OrderCreated)
#32 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(512): App\Listeners\DispatchWebhooks->handle(Object(App\Events\OrderCreated))
#33 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(319): Illuminate\Events\Dispatcher->{closure:Illuminate\Events\Dispatcher::createClassListener():505}('App\\Events\\Orde...', Array)
#34 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(299): Illuminate\Events\Dispatcher->invokeListeners('App\\Events\\Orde...', Array, false)
#35 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php(505): Illuminate\Events\Dispatcher->dispatch(Object(App\Events\OrderCreated))
#36 /Users/fabianwesner/Herd/shop/app/Services/OrderService.php(132): event(Object(App\Events\OrderCreated))
#37 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php(35): App\Services\OrderService->{closure:App\Services\OrderService::createFromCheckout():49}(Object(Illuminate\Database\SQLiteConnection))
#38 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php(491): Illuminate\Database\Connection->transaction(Object(Closure))
#39 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(363): Illuminate\Database\DatabaseManager->__call('transaction', Array)
#40 /Users/fabianwesner/Herd/shop/app/Services/OrderService.php(49): Illuminate\Support\Facades\Facade::__callStatic('transaction', Array)
#41 /Users/fabianwesner/Herd/shop/app/Services/CheckoutService.php(201): App\Services\OrderService->createFromCheckout(Object(App\Models\Checkout), Array)
#42 /Users/fabianwesner/Herd/shop/app/Http/Controllers/Api/Storefront/V1/CheckoutController.php(129): App\Services\CheckoutService->completeCheckout(Object(App\Models\Checkout), Array)
#43 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\Http\Controllers\Api\Storefront\V1\CheckoutController->pay(Object(App\Http\Requests\Api\Storefront\V1\CompleteCheckoutPaymentRequest), Object(App\Models\Checkout), Object(App\Services\CheckoutService))
#44 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(App\Http\Controllers\Api\Storefront\V1\CheckoutController), 'pay')
#45 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\Routing\Route->runController()
#46 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Routing/Router.php(822): Illuminate\Routing\Route->run()
#47 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Routing\Router->{closure:Illuminate\Routing\Router::runRouteWithinStack():821}(Object(Illuminate\Http\Request))
#48 /Users/fabianwesner/Herd/shop/app/Http/Middleware/ResolveStore.php(38): Illuminate\Pipeline\Pipeline->{closure:Illuminate\Pipeline\Pipeline::prepareDestination():178}(Object(Illuminate\Http\Request))
#49 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): App\Http\Middleware\ResolveStore->handle(Object(Illuminate\Http\Request), Object(Closure))
#50 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\Pipeline\Pipeline->{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}(Object(Illuminate\Http\Request))
#51 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Routing\Middleware\SubstituteBindings->handle(Object(Illuminate\Http\Request), Object(Closure))
#52 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(166): Illuminate\Pipeline\Pipeline->{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}(Object(Illuminate\Http\Request))
#53 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(129): Illuminate\Routing\Middleware\ThrottleRequests->handleRequest(Object(Illuminate\Http\Request), Object(Closure), Array)
#54 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(90): Illuminate\Routing\Middleware\ThrottleRequests->handleRequestUsingNamedLimiter(Object(Illuminate\Http\Request), Object(Closure), 'checkout', Object(Closure))
#55 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Routing\Middleware\ThrottleRequests->handle(Object(Illuminate\Http\Request), Object(Closure), 'checkout')
#56 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\Pipeline\Pipeline->{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}(Object(Illuminate\Http\Request))
#57 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#58 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#59 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\Routing\Router->runRoute(Object(Illuminate\Http\Request), Object(Illuminate\Routing\Route))
#60 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#61 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#62 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Foundation\Http\Kernel->{closure:Illuminate\Foundation\Http\Kernel::dispatchToRouter():197}(Object(Illuminate\Http\Request))
#63 /Users/fabianwesner/Herd/shop/vendor/livewire/livewire/src/Features/SupportDisablingBackButtonCache/DisableBackButtonCacheMiddleware.php(19): Illuminate\Pipeline\Pipeline->{closure:Illuminate\Pipeline\Pipeline::prepareDestination():178}(Object(Illuminate\Http\Request))
#64 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Livewire\Features\SupportDisablingBackButtonCache\DisableBackButtonCacheMiddleware->handle(Object(Illuminate\Http\Request), Object(Closure))
#65 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}(Object(Illuminate\Http\Request))
#66 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#67 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull->handle(Object(Illuminate\Http\Request), Object(Closure))
#68 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}(Object(Illuminate\Http\Request))
#69 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#70 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Foundation\Http\Middleware\TrimStrings->handle(Object(Illuminate\Http\Request), Object(Closure))
#71 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}(Object(Illuminate\Http\Request))
#72 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Http\Middleware\ValidatePostSize->handle(Object(Illuminate\Http\Request), Object(Closure))
#73 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(109): Illuminate\Pipeline\Pipeline->{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}(Object(Illuminate\Http\Request))
#74 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle(Object(Illuminate\Http\Request), Object(Closure))
#75 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(74): Illuminate\Pipeline\Pipeline->{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}(Object(Illuminate\Http\Request))
#76 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Http\Middleware\HandleCors->handle(Object(Illuminate\Http\Request), Object(Closure))
#77 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\Pipeline\Pipeline->{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}(Object(Illuminate\Http\Request))
#78 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Http\Middleware\TrustProxies->handle(Object(Illuminate\Http\Request), Object(Closure))
#79 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\Pipeline\Pipeline->{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}(Object(Illuminate\Http\Request))
#80 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Foundation\Http\Middleware\InvokeDeferredCallbacks->handle(Object(Illuminate\Http\Request), Object(Closure))
#81 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(26): Illuminate\Pipeline\Pipeline->{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}(Object(Illuminate\Http\Request))
#82 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\Http\Middleware\ValidatePathEncoding->handle(Object(Illuminate\Http\Request), Object(Closure))
#83 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\Pipeline\Pipeline->{closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}(Object(Illuminate\Http\Request))
#84 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#85 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#86 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php(607): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#87 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php(573): Illuminate\Foundation\Testing\TestCase->call('POST', '/api/storefront...', Array, Array, Array, Array, '{"payment_metho...')
#88 /Users/fabianwesner/Herd/shop/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php(411): Illuminate\Foundation\Testing\TestCase->json('POST', '/api/storefront...', Array, Array, 0)
#89 /Users/fabianwesner/Herd/shop/tests/Feature/Api/StorefrontOrderApiTest.php(100): Illuminate\Foundation\Testing\TestCase->postJson('/api/storefront...', Array)
#90 /Users/fabianwesner/Herd/shop/vendor/pestphp/pest/src/Factories/TestCaseMethodFactory.php(168): P\Tests\Feature\Api\StorefrontOrderApiTest->{closure:/Users/fabianwesner/Herd/shop/tests/Feature/Api/StorefrontOrderApiTest.php:95}()
#91 [internal function]: P\Tests\Feature\Api\StorefrontOrderApiTest->{closure:Pest\Factories\TestCaseMethodFactory::getClosure():158}()
#92 /Users/fabianwesner/Herd/shop/vendor/pestphp/pest/src/Concerns/Testable.php(429): call_user_func_array(Object(Closure), Array)
#93 /Users/fabianwesner/Herd/shop/vendor/pestphp/pest/src/Support/ExceptionTrace.php(26): P\Tests\Feature\Api\StorefrontOrderApiTest->{closure:Pest\Concerns\Testable::__callClosure():429}()
#94 /Users/fabianwesner/Herd/shop/vendor/pestphp/pest/src/Concerns/Testable.php(429): Pest\Support\ExceptionTrace::ensure(Object(Closure))
#95 /Users/fabianwesner/Herd/shop/vendor/pestphp/pest/src/Concerns/Testable.php(331): P\Tests\Feature\Api\StorefrontOrderApiTest->__callClosure(Object(Closure), Array)
#96 /Users/fabianwesner/Herd/shop/vendor/pestphp/pest/src/Factories/TestCaseFactory.php(169) : eval()'d code(17): P\Tests\Feature\Api\StorefrontOrderApiTest->__runTest(Object(Closure))
#97 /Users/fabianwesner/Herd/shop/vendor/phpunit/phpunit/src/Framework/TestCase.php(1332): P\Tests\Feature\Api\StorefrontOrderApiTest->__pest_evaluable_storefront_order_api_pays_a_checkout_and_exposes_token_gated_order_lookup()
#98 /Users/fabianwesner/Herd/shop/vendor/phpunit/phpunit/src/Framework/TestCase.php(519): PHPUnit\Framework\TestCase->runTest()
#99 /Users/fabianwesner/Herd/shop/vendor/phpunit/phpunit/src/Framework/TestRunner/TestRunner.php(99): PHPUnit\Framework\TestCase->runBare()
#100 /Users/fabianwesner/Herd/shop/vendor/phpunit/phpunit/src/Framework/TestCase.php(359): PHPUnit\Framework\TestRunner->run(Object(P\Tests\Feature\Api\StorefrontOrderApiTest))
#101 /Users/fabianwesner/Herd/shop/vendor/phpunit/phpunit/src/Framework/TestSuite.php(374): PHPUnit\Framework\TestCase->run()
#102 /Users/fabianwesner/Herd/shop/vendor/phpunit/phpunit/src/Framework/TestSuite.php(374): PHPUnit\Framework\TestSuite->run()
#103 /Users/fabianwesner/Herd/shop/vendor/phpunit/phpunit/src/Framework/TestSuite.php(374): PHPUnit\Framework\TestSuite->run()
#104 /Users/fabianwesner/Herd/shop/vendor/phpunit/phpunit/src/TextUI/TestRunner.php(64): PHPUnit\Framework\TestSuite->run()
#105 /Users/fabianwesner/Herd/shop/vendor/phpunit/phpunit/src/TextUI/Application.php(229): PHPUnit\TextUI\TestRunner->run(Object(PHPUnit\TextUI\Configuration\Configuration), Object(PHPUnit\Runner\ResultCache\DefaultResultCache), Object(PHPUnit\Framework\TestSuite))
#106 /Users/fabianwesner/Herd/shop/vendor/pestphp/pest/src/Kernel.php(103): PHPUnit\TextUI\Application->run(Array)
#107 /Users/fabianwesner/Herd/shop/vendor/pestphp/pest/bin/pest(184): Pest\Kernel->handle(Array, Array)
#108 /Users/fabianwesner/Herd/shop/vendor/pestphp/pest/bin/pest(192): {closure:/Users/fabianwesner/Herd/shop/vendor/pestphp/pest/bin/pest:18}()
#109 {main}

----------------------------------------------------------------------------------

cURL error 6: Could not resolve host: acme-fashion.integrations.example (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://acme-fashion.integrations.example/webhooks/order.created

  at tests/Feature/Api/StorefrontOrderApiTest.php:109
    105▕             'card_cvc' => '123',
    106▕         ]);
    107▕
    108▕     $payResponse
  ➜ 109▕         ->assertOk()
    110▕         ->assertJsonPath('data.order_number', '#1001')
    111▕         ->assertJsonPath('data.financial_status', 'paid')
    112▕         ->assertJsonCount(1, 'data.lines');
    113▕

  ────────────────────────────────────────────────────────────────────────────
   FAILED  Tests\Feature\Catalog\CatalogUiTest > admin…   ConnectionException
  cURL error 6: Could not resolve host: acme-fashion.integrations.example (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://acme-fashion.integrations.example/webhooks/product.updated

  at vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:277
    273▕         }
    274▕
    275▕         // Create a connection exception if it was a specific error code.
    276▕         $error = isset($connectionErrors[$easy->errno])
  ➜ 277▕             ? new ConnectException($message, $easy->request, null, $ctx)
    278▕             : new RequestException($message, $easy->request, $easy->response, null, $ctx);
    279▕
    280▕         return P\Create::rejectionFor($error);
    281▕     }

      +22 vendor frames
  23  app/Jobs/DeliverWebhook.php:71
      +22 vendor frames
  46  app/Services/WebhookService.php:45

  ────────────────────────────────────────────────────────────────────────────
   FAILED  Tests\Feature\Storefront\OrderViewsTest > ch…  ConnectionException
  cURL error 6: Could not resolve host: acme-fashion.integrations.example (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://acme-fashion.integrations.example/webhooks/order.created

  at vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:277
    273▕         }
    274▕
    275▕         // Create a connection exception if it was a specific error code.
    276▕         $error = isset($connectionErrors[$easy->errno])
  ➜ 277▕             ? new ConnectException($message, $easy->request, null, $ctx)
    278▕             : new RequestException($message, $easy->request, $easy->response, null, $ctx);
    279▕
    280▕         return P\Create::rejectionFor($error);
    281▕     }

      +22 vendor frames
  23  app/Jobs/DeliverWebhook.php:71
      +22 vendor frames
  46  app/Services/WebhookService.php:45

  Tests:    5 failed, 177 passed (869 assertions)
  Duration: 36.08s


The full suite found a real integration problem: seeded active webhooks plus the sync queue were making existing order/product tests perform real HTTP requests. I’m forcing webhook deliveries onto the database queue so domain actions enqueue deliveries instead of calling external URLs inline.


Input:
*** Begin Patch
*** Update File: /Users/fabianwesner/Herd/shop/app/Services/WebhookService.php
@@
                 DeliverWebhook::dispatch(
                     $delivery->getKey(),
                     $event->value,
                     $this->envelope($store, $event, $delivery->event_id, $payload),
-                );
+                )->onConnection('database')->onQueue('webhooks');
             });
     }
*** End Patch


Success. Updated the following files:
M /Users/fabianwesner/Herd/shop/app/Services/WebhookService.php

@@ -48,3 +48,3 @@
                     $this->envelope($store, $event, $delivery->event_id, $payload),
-                );
+                )->onConnection('database')->onQueue('webhooks');
             });


Output: {"output":"Success. Updated the following files:\nM /Users/fabianwesner/Herd/shop/app/Services/WebhookService.php\n","metadata":{"exit_code":0,"duration_seconds":0.0}}


php artisan test --compact tests/Feature/Webhooks/WebhookDeliveryTest.php tests/Feature/Admin/AppsDevelopersTest.php tests/Feature/Api/StorefrontOrderApiTest.php tests/Feature/Catalog/CatalogUiTest.php tests/Feature/Storefront/OrderViewsTest.php


Output:
Chunk ID: f16334
Wall time: 1.0018 seconds
Process running with session ID 93478
Original token count: 2
Output:

  ....


php artisan test --compact tests/Feature/Webhooks/WebhookDeliveryTest.php tests/Feature/Admin/AppsDevelopersTest.php tests/Feature/Api/StorefrontOrderApiTest.php tests/Feature/Catalog/CatalogUiTest.php tests/Feature/Storefront/OrderViewsTest.php

  ..........⨯......
  ────────────────────────────────────────────────────────────────────────────
   FAILED  Tests\Feature\Catalog\CatalogUiTest > admin catalog routes requir…
  Expected: <!DOCTYPE html>\n
  <html lang="en" class="dark">\n
      <head>\n
  ... (1370 more lines)

  To contain: Classic Cotton T-Shirt

  at tests/Feature/Catalog/CatalogUiTest.php:59
     55▕
     56▕     $this->actingAs($user)
     57▕         ->get('/admin/products')
     58▕         ->assertSuccessful()
  ➜  59▕         ->assertSee('Classic Cotton T-Shirt')
     60▕         ->assertSee('Premium Slim Fit Jeans');
     61▕
     62▕     $this->actingAs($user)
     63▕         ->get('/admin/collections')

  Tests:    1 failed, 16 passed (105 assertions)
  Duration: 6.59s


Output:
Chunk ID: db3fa2
Wall time: 0.0000 seconds
Process exited with code 1
Original token count: 235
Output:
......⨯......
  ────────────────────────────────────────────────────────────────────────────
   FAILED  Tests\Feature\Catalog\CatalogUiTest > admin catalog routes requir…
  Expected: <!DOCTYPE html>\n
  <html lang="en" class="dark">\n
      <head>\n
  ... (1370 more lines)

  To contain: Classic Cotton T-Shirt

  at tests/Feature/Catalog/CatalogUiTest.php:59
     55▕
     56▕     $this->actingAs($user)
     57▕         ->get('/admin/products')
     58▕         ->assertSuccessful()
  ➜  59▕         ->assertSee('Classic Cotton T-Shirt')
     60▕         ->assertSee('Premium Slim Fit Jeans');
     61▕
     62▕     $this->actingAs($user)
     63▕         ->get('/admin/collections')

  Tests:    1 failed, 16 passed (105 assertions)
  Duration: 6.59s


sed -n '1,90p' tests/Feature/Catalog/CatalogUiTest.php


sed -n '1,90p' tests/Feature/Catalog/CatalogUiTest.php

<?php

use App\Livewire\Admin\Collections\Form as CollectionForm;
use App\Livewire\Admin\Products\Form as ProductForm;
use App\Livewire\Admin\Products\Index as ProductIndex;
use App\Models\Collection;
use App\Models\Product;
use App\Models\Store;
use App\Models\User;
use App\Services\ProductService;
use Database\Seeders\DatabaseSeeder;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Livewire\Livewire;

uses(RefreshDatabase::class);

beforeEach(function () {
    $this->withoutVite();
    $this->seed(DatabaseSeeder::class);
});

test('storefront catalog browsing routes render seeded products', function () {
    $this->withHeader('Host', 'shop.test')
        ->get('/')
        ->assertSuccessful()
        ->assertSee('Acme Fashion')
        ->assertSee('Classic Cotton T-Shirt')
        ->assertSee('24.99 EUR');

    $this->withHeader('Host', 'shop.test')
        ->get('/collections/t-shirts')
        ->assertSuccessful()
        ->assertSee('T-Shirts')
        ->assertSee('Classic Cotton T-Shirt')
        ->assertDontSee('Unreleased Winter Jacket');

    $this->withHeader('Host', 'shop.test')
        ->get('/products/classic-cotton-t-shirt')
        ->assertSuccessful()
        ->assertSee('Classic Cotton T-Shirt')
        ->assertSee('Size')
        ->assertSee('Color')
        ->assertSee('Add to cart');

    $this->withHeader('Host', 'shop.test')
        ->get('/search?q=draft')
        ->assertSuccessful()
        ->assertDontSee('Unreleased Winter Jacket');
});

test('admin catalog routes require authentication and render for store admins', function () {
    $this->get('/admin/products')->assertRedirect('/admin/login');

    $user = User::query()->where('email', 'admin@acme.test')->firstOrFail();

    $this->actingAs($user)
        ->get('/admin/products')
        ->assertSuccessful()
        ->assertSee('Classic Cotton T-Shirt')
        ->assertSee('Premium Slim Fit Jeans');

    $this->actingAs($user)
        ->get('/admin/collections')
        ->assertSuccessful()
        ->assertSee('Collections')
        ->assertSee('T-Shirts');

    $this->actingAs($user)
        ->get('/admin/inventory')
        ->assertSuccessful()
        ->assertSee('Inventory')
        ->assertSee('Limited Edition Sneakers');
});

test('admin product form creates edits archives and index filters products', function () {
    $store = Store::query()->where('handle', 'acme-fashion')->firstOrFail();
    $user = User::query()->where('email', 'admin@acme.test')->firstOrFail();
    app()->instance('current_store', $store);

    Livewire::actingAs($user)
        ->test(ProductForm::class)
        ->set('title', 'Test Product Created by E2E')
        ->set('handle', 'test-product-created-by-e2e')
        ->set('descriptionHtml', 'This product was created by the E2E test suite.')
        ->set('vendor', 'Test Vendor')
        ->set('productType', 'T-Shirts')
        ->set('variants.0.price', '29.99')
        ->set('variants.0.sku', 'E2E-TEST-001')
        ->set('variants.0.quantity', 50)
        ->call('save')


Output:
Chunk ID: cd20cc
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 761
Output:
<?php

use App\Livewire\Admin\Collections\Form as CollectionForm;
use App\Livewire\Admin\Products\Form as ProductForm;
use App\Livewire\Admin\Products\Index as ProductIndex;
use App\Models\Collection;
use App\Models\Product;
use App\Models\Store;
use App\Models\User;
use App\Services\ProductService;
use Database\Seeders\DatabaseSeeder;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Livewire\Livewire;

uses(RefreshDatabase::class);

beforeEach(function () {
    $this->withoutVite();
    $this->seed(DatabaseSeeder::class);
});

test('storefront catalog browsing routes render seeded products', function () {
    $this->withHeader('Host', 'shop.test')
        ->get('/')
        ->assertSuccessful()
        ->assertSee('Acme Fashion')
        ->assertSee('Classic Cotton T-Shirt')
        ->assertSee('24.99 EUR');

    $this->withHeader('Host', 'shop.test')
        ->get('/collections/t-shirts')
        ->assertSuccessful()
        ->assertSee('T-Shirts')
        ->assertSee('Classic Cotton T-Shirt')
        ->assertDontSee('Unreleased Winter Jacket');

    $this->withHeader('Host', 'shop.test')
        ->get('/products/classic-cotton-t-shirt')
        ->assertSuccessful()
        ->assertSee('Classic Cotton T-Shirt')
        ->assertSee('Size')
        ->assertSee('Color')
        ->assertSee('Add to cart');

    $this->withHeader('Host', 'shop.test')
        ->get('/search?q=draft')
        ->assertSuccessful()
        ->assertDontSee('Unreleased Winter Jacket');
});

test('admin catalog routes require authentication and render for store admins', function () {
    $this->get('/admin/products')->assertRedirect('/admin/login');

    $user = User::query()->where('email', 'admin@acme.test')->firstOrFail();

    $this->actingAs($user)
        ->get('/admin/products')
        ->assertSuccessful()
        ->assertSee('Classic Cotton T-Shirt')
        ->assertSee('Premium Slim Fit Jeans');

    $this->actingAs($user)
        ->get('/admin/collections')
        ->assertSuccessful()
        ->assertSee('Collections')
        ->assertSee('T-Shirts');

    $this->actingAs($user)
        ->get('/admin/inventory')
        ->assertSuccessful()
        ->assertSee('Inventory')
        ->assertSee('Limited Edition Sneakers');
});

test('admin product form creates edits archives and index filters products', function () {
    $store = Store::query()->where('handle', 'acme-fashion')->firstOrFail();
    $user = User::query()->where('email', 'admin@acme.test')->firstOrFail();
    app()->instance('current_store', $store);

    Livewire::actingAs($user)
        ->test(ProductForm::class)
        ->set('title', 'Test Product Created by E2E')
        ->set('handle', 'test-product-created-by-e2e')
        ->set('descriptionHtml', 'This product was created by the E2E test suite.')
        ->set('vendor', 'Test Vendor')
        ->set('productType', 'T-Shirts')
        ->set('variants.0.price', '29.99')
        ->set('variants.0.sku', 'E2E-TEST-001')
        ->set('variants.0.quantity', 50)
        ->call('save')


sed -n '1,120p' app/Http/Middleware/ResolveStore.php


sed -n '1,120p' app/Http/Middleware/ResolveStore.php

<?php

namespace App\Http\Middleware;

use App\Enums\StoreStatus;
use App\Models\Store;
use App\Models\StoreDomain;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cache;
use Symfony\Component\HttpFoundation\Response;

class ResolveStore
{
    /**
     * Handle an incoming request.
     *
     * @param  \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response)  $next
     */
    public function handle(Request $request, Closure $next): Response
    {
        $store = $request->is('admin*')
            ? $this->resolveAdminStore($request)
            : $this->resolveStorefrontStore($request);

        abort_unless($store, 404);

        app()->instance('current_store', $store);

        if (! $request->is('admin*') && $store->status === StoreStatus::Suspended) {
            abort(503);
        }

        if ($request->is('admin*') && $store->status === StoreStatus::Suspended && ! $request->isMethodSafe()) {
            abort(403);
        }

        return $next($request);
    }

    private function resolveStorefrontStore(Request $request): ?Store
    {
        $hostname = $request->getHost();
        $cacheKey = "store_domain:{$hostname}";

        $storeId = Cache::remember($cacheKey, now()->addMinutes(5), function () use ($hostname): ?int {
            return StoreDomain::query()
                ->where('hostname', $hostname)
                ->value('store_id');
        });

        return $storeId ? Store::query()->find($storeId) : null;
    }

    private function resolveAdminStore(Request $request): ?Store
    {
        $user = $request->user();

        if (! $user) {
            return null;
        }

        $storeId = $request->session()->get('current_store_id');

        if (! $storeId) {
            $storeId = $user->stores()->oldest('stores.id')->value('stores.id');

            if ($storeId) {
                $request->session()->put('current_store_id', $storeId);
            }
        }

        if (! $storeId || ! $user->stores()->whereKey($storeId)->exists()) {
            return null;
        }

        return Store::query()->find($storeId);
    }
}


Output:
Chunk ID: 3636ff
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 538
Output:
<?php

namespace App\Http\Middleware;

use App\Enums\StoreStatus;
use App\Models\Store;
use App\Models\StoreDomain;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cache;
use Symfony\Component\HttpFoundation\Response;

class ResolveStore
{
    /**
     * Handle an incoming request.
     *
     * @param  \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response)  $next
     */
    public function handle(Request $request, Closure $next): Response
    {
        $store = $request->is('admin*')
            ? $this->resolveAdminStore($request)
            : $this->resolveStorefrontStore($request);

        abort_unless($store, 404);

        app()->instance('current_store', $store);

        if (! $request->is('admin*') && $store->status === StoreStatus::Suspended) {
            abort(503);
        }

        if ($request->is('admin*') && $store->status === StoreStatus::Suspended && ! $request->isMethodSafe()) {
            abort(403);
        }

        return $next($request);
    }

    private function resolveStorefrontStore(Request $request): ?Store
    {
        $hostname = $request->getHost();
        $cacheKey = "store_domain:{$hostname}";

        $storeId = Cache::remember($cacheKey, now()->addMinutes(5), function () use ($hostname): ?int {
            return StoreDomain::query()
                ->where('hostname', $hostname)
                ->value('store_id');
        });

        return $storeId ? Store::query()->find($storeId) : null;
    }

    private function resolveAdminStore(Request $request): ?Store
    {
        $user = $request->user();

        if (! $user) {
            return null;
        }

        $storeId = $request->session()->get('current_store_id');

        if (! $storeId) {
            $storeId = $user->stores()->oldest('stores.id')->value('stores.id');

            if ($storeId) {
                $request->session()->put('current_store_id', $storeId);
            }
        }

        if (! $storeId || ! $user->stores()->whereKey($storeId)->exists()) {
            return null;
        }

        return Store::query()->find($storeId);
    }
}


php artisan test --compact tests/Feature/Catalog/CatalogUiTest.php --filter="admin catalog routes"


Output:
Chunk ID: 44cf2e
Wall time: 1.0016 seconds
Process running with session ID 97896
Original token count: 16
Output:

  .

  Tests:    1 passed (11 assertions)
  Duration: 0.78s


php artisan test --compact tests/Feature/Catalog/CatalogUiTest.php --filter="admin catalog routes"

  .

  Tests:    1 passed (11 assertions)
  Duration: 0.78s


Output:
Chunk ID: 64b11c
Wall time: 1.0018 seconds
Process running with session ID 78092
Original token count: 2
Output:

  ....


  .................

  Tests:    17 passed (112 assertions)
  Duration: 6.74s


Output:
Chunk ID: 7eebfa
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 19
Output:
.............

  Tests:    17 passed (112 assertions)
  Duration: 6.74s


Moving deliveries to the database queue fixed the external HTTP side effect; the previously failing affected set now passes. I’m rerunning the full suite from a clean pass.


Output:
Chunk ID: 47ce68
Wall time: 1.0015 seconds
Process running with session ID 7444
Original token count: 1
Output:

  .


Output:
Chunk ID: 36ae8d
Wall time: 5.0011 seconds
Process running with session ID 7444
Original token count: 7
Output:
.........................


Output:
Chunk ID: 11dd30
Wall time: 5.0013 seconds
Process running with session ID 7444
Original token count: 7
Output:
...........................


Output:
Chunk ID: 6cbbf8
Wall time: 5.0015 seconds
Process running with session ID 7444
Original token count: 29
Output:
.......................
  ............................................................................
  .........


Output:
Chunk ID: 70acbe
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 21
Output:
.....................

  Tests:    182 passed (909 assertions)
  Duration: 36.74s


Full Pest passes: 182 tests and 909 assertions. I made one PHP change after the earlier formatter run, so I’m running Pint once more, then I’ll reset the seeded database for the working app state.


Output:
Chunk ID: f7a5d5
Wall time: 0.2490 seconds
Process exited with code 0
Original token count: 5
Output:
{"result":"pass"}


/bin/zsh
-lc
vendor/bin/pint --dirty --format agent


php artisan migrate:fresh --seed --no-interaction


Output:
Chunk ID: 354933
Wall time: 1.0012 seconds
Process running with session ID 4091
Original token count: 1907
Output:

  Dropping all tables ............................................ 5.23ms DONE

   INFO  Preparing database.

  Creating migration table ....................................... 1.94ms DONE

   INFO  Running migrations.

  0001_01_01_000000_create_users_table ........................... 1.71ms DONE
  0001_01_01_000001_create_cache_table ........................... 0.37ms DONE
  0001_01_01_000002_create_jobs_table ............................ 1.00ms DONE
  2025_08_14_170933_add_two_factor_columns_to_users_table ........ 0.48ms DONE
  2026_05_03_211409_create_organizations_table ................... 0.24ms DONE
  2026_05_03_211413_create_stores_table .......................... 4.18ms DONE
  2026_05_03_211416_create_store_domains_table ................... 0.47ms DONE
  2026_05_03_211419_create_store_settings_table .................. 0.19ms DONE
  2026_05_03_211425_create_store_users_table ..................... 0.36ms DONE
  2026_05_03_211556_create_customers_table ....................... 0.32ms DONE
  2026_05_03_212158_create_customer_password_reset_tokens_table .. 0.22ms DONE
  2026_05_03_213856_create_products_table ........................ 0.78ms DONE
  2026_05_03_213857_create_product_options_table ................. 0.46ms DONE
  2026_05_03_213858_create_product_option_values_table ........... 0.41ms DONE
  2026_05_03_213859_create_product_variants_table ................ 0.60ms DONE
  2026_05_03_213900_create_variant_option_values_table ........... 0.25ms DONE
  2026_05_03_213901_create_inventory_items_table ................. 0.32ms DONE
  2026_05_03_213902_create_collections_table ..................... 0.39ms DONE
  2026_05_03_213903_create_collection_products_table ............. 0.39ms DONE
  2026_05_03_213904_create_product_media_table ................... 0.62ms DONE
  2026_05_03_223824_create_themes_table .......................... 0.44ms DONE
  2026_05_03_223830_create_theme_files_table ..................... 0.35ms DONE
  2026_05_03_223837_create_theme_settings_table .................. 0.17ms DONE
  2026_05_03_223841_create_pages_table ........................... 0.43ms DONE
  2026_05_03_223844_create_navigation_menus_table ................ 0.31ms DONE
  2026_05_03_223848_create_navigation_items_table ................ 0.34ms DONE
  2026_05_03_225400_create_carts_table ........................... 0.41ms DONE
  2026_05_03_225405_create_cart_lines_table ...................... 0.36ms DONE
  2026_05_03_225409_create_checkouts_table ....................... 0.61ms DONE
  2026_05_03_225413_create_shipping_zones_table .................. 0.25ms DONE
  2026_05_03_225418_create_shipping_rates_table .................. 0.30ms DONE
  2026_05_03_225422_create_tax_settings_table .................... 0.26ms DONE
  2026_05_03_225427_create_discounts_table ....................... 0.58ms DONE
  2026_05_04_000408_create_customer_addresses_table .............. 0.35ms DONE
  2026_05_04_000408_create_orders_table .......................... 0.89ms DONE
  2026_05_04_000410_create_order_lines_table ..................... 0.46ms DONE
  2026_05_04_000411_create_payments_table ........................ 0.48ms DONE
  2026_05_04_000412_create_refunds_table ......................... 0.57ms DONE
  2026_05_04_000413_create_fulfillments_table .................... 0.43ms DONE
  2026_05_04_000414_create_fulfillment_lines_table ............... 0.35ms DONE
  2026_05_04_030847_create_search_settings_table ................. 0.20ms DONE
  2026_05_04_030848_create_products_fts_table .................... 0.47ms DONE
  2026_05_04_030848_create_search_queries_table .................. 0.48ms DONE
  2026_05_04_032640_create_analytics_events_table ................ 0.65ms DONE
  2026_05_04_032641_create_analytics_dailies_table ............... 0.34ms DONE
  2026_05_04_034556_create_apps_table ............................ 0.22ms DONE
  2026_05_04_034601_create_app_installations_table ............... 0.42ms DONE
  2026_05_04_034606_create_oauth_clients_table ................... 0.29ms DONE
  2026_05_04_034611_create_oauth_tokens_table .................... 0.39ms DONE
  2026_05_04_034616_create_webhook_subscriptions_table ........... 0.39ms DONE
  2026_05_04_034621_create_webhook_deliveries_table .............. 0.48ms DONE

   INFO  Seeding database.

  Database\Seeders\OrganizationSeeder ................................ RUNNING
  Database\Seeders\OrganizationSeeder .............................. 5 ms DONE

  Database\Seeders\StoreSeeder ....................................... RUNNING
  Database\Seeders\StoreSeeder ..................................... 1 ms DONE

  Database\Seeders\StoreDomainSeeder ................................. RUNNING
  Database\Seeders\StoreDomainSeeder ............................... 2 ms DONE

  Database\Seeders\AppSeeder ......................................... RUNNING
  Database\Seeders\AppSeeder ....................................... 9 ms DONE

  Database\Seeders\UserSeeder ........................................ RUNNING
  Database\Seeders\UserSeeder .................................... 271 ms DONE

  Database\Seeders\StoreUserSeeder ................................... RUNNING
  Database\Seeders\StoreUserSeeder ................................. 1 ms DONE

  Database\Seeders\StoreSettingsSeeder ............................... RUNNING
  Database\Seeders\StoreSettingsSeeder ............................. 1 ms DONE

  Database\Seeders\SearchSettingsSeeder .............................. RUNNING
  Database\Seeders\SearchSettingsSeeder ............................ 1 ms DONE

  Database\Seeders\CollectionSeeder .................................. RUNNING
  Database\Seeders\CollectionSeeder ................................ 3 ms DONE

  Database\Seeders\ProductSeeder ..................................... RUNNING
  Database\Seeders\ProductSeeder ................................. 205 ms DONE

  Database\Seeders\ThemeSeeder ....................................... RUNNING
  Database\Seeders\ThemeSeeder ..................................... 1 ms DONE

  Database\Seeders\ThemeFileSeeder ................................... RUNNING
  Database\Seeders\ThemeFileSeeder ................................. 2 ms DONE

  Database\Seeders\ThemeSettingsSeeder ............................... RUNNING
  Database\Seeders\ThemeSettingsSeeder ............................. 1 ms DONE

  Database\Seeders\PageSeeder ........................................ RUNNING
  Database\Seeders\PageSeeder ...................................... 2 ms DONE

  Database\Seeders\NavigationMenuSeeder .............................. RUNNING
  Database\Seeders\NavigationMenuSeeder ............................ 6 ms DONE

  Database\Seeders\NavigationItemSeeder .............................. RUNNING
  Database\Seeders\NavigationItemSeeder ............................ 4 ms DONE

  Database\Seeders\TaxSettingsSeeder ................................. RUNNING
  Database\Seeders\TaxSettingsSeeder ............................... 1 ms DONE

  Database\Seeders\ShippingZoneSeeder ................................ RUNNING
  Database\Seeders\ShippingZoneSeeder .............................. 1 ms DONE

  Database\Seeders\ShippingRateSeeder ................................ RUNNING
  Database\Seeders\ShippingRateSeeder .............................. 1 ms DONE

  Database\Seeders\DiscountSeeder .................................... RUNNING
  Database\Seeders\DiscountSeeder .................................. 3 ms DONE

  Database\Seeders\CustomerSeeder .................................... RUNNING


Output:
Chunk ID: 194632
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 62
Output:
  Database\Seeders\CustomerSeeder ................................ 267 ms DONE

  Database\Seeders\AnalyticsSeeder ................................... RUNNING
  Database\Seeders\AnalyticsSeeder ................................ 71 ms DONE


The app database is reset back to seeded fixtures. I’m updating `specs/progress.md` now with the app/webhook evidence and remaining gaps before I commit this slice.


rg -n "Active slice|App/webhook|Apps admin|app/webhook|developer token|Phase 7 apps|apps/webhooks|Sanctum|Seeders create|Browser E2E|Roadmap phases|Business logic|Routes/API|Database schema|Admin UI|Not complete|Known|missing" specs/progress.md