An application on the Laravel stackHow this works

A fictional shop whose support desk is run by a model and governed by people.

Artisan Supply Co is a Laravel Cloud demonstration. Support, returns, wholesale and gift-code messages arrive on a queue. A model classifies each one, extracts the facts and drafts a reply, as a structured proposal with a confidence. A member of staff approves, edits or rejects it. Only an approved proposal can write to an outbox that is held, searchable, and never sent. Around that spine sit a catalogue with two storefronts, live updates, feature-flag experiments, an image studio, and two connectors for AI assistants.

This page describes the architecture as it is built, from the source. It shows no customer data and no live counts. Everything on it is fictional except the engineering.


The architecture, as a diagram

Hover to read a part; click it, or move to it with Tab and press Enter, to open it below. Solid arrows carry content, dashed arrows carry decisions and questions.

Laravel framework
Laravel packages
Laravel Cloud
Outside the Laravel stack
People
Customers Livewire Catalogue, checkout Livewire storefront Livewire Contact, wholesale two forms, one action Next.js A second storefront Next.js, read-only MCP An AI assistant storefront connector Pennant A campaign banner one variant per visitor The application Judgement and approval What leaves, and what does not Eloquent The inbound record Received, classifying, triaged one proposal per message, under a row lock an append-only audit event per transition Horizon · Redis The queues triage one job per message outbound the approved effect media image variants storefront cache invalidation default one intentional failure Eloquent · API The catalogue Products, orders, integer pence a read-only JSON API; events after commit AI SDK · Storage The image studio A variant, never the master Pennant Campaigns and experiments Variants by weight, counted once a manager promotes the winner AI SDK · Anthropic AI triage A model fills a schema category · confidence · extracted facts a proposal of one kind: reply, refund, qualification, or referral discount refunds in pence, with a policy basis a draft reply, and the reasoning eligibility from orders, not the model below 0.70, the draft is withheld People Human in the loop Approve · Edit · Reject a manager above the £50 cap same review, screen or connector final once decided; edits are recorded Queues The held outbox Nothing is sent one row per approved proposal searchable by staff; no release button Reverb · Echo Live updates Three channels, after commit approvals, private, for staff product.{id}, public, a stock figure campaign.{id}, private, results Next.js The second storefront Signed cache invalidation tags cleared from a queued listener the same stock channel, through Echo MCP · Sanctum Staff connector Approve · reject · search same authorizers, as the token's owner nothing here can release a message Agents and managers two roles; the cap is the only difference A model proposes a person decides Nothing leaves the building the outbox is held Everything slow is a job five queues, one Horizon Money is integers never a float What everything stands on Middleware · Sanctum Access and roles Who may see what, and who may decide customers need no account; staff sign in to two roles one middleware guards every admin route and Horizon rate limits on the action, not the page Laravel Cloud · Nightwatch Hosting and quality Two apps, one repository, push to deploy Postgres · managed Reverb · Horizon in the background Nightwatch, with one intentional failing job to show it Pest, Pint and Playwright; no test spends money Artisan · Pennant · stubs Demo controls Deterministic by default the model and the image model are stubbed unless asked commands seed, flood, simulate traffic, fail on purpose rehearsal data resets as a unit; real messages never do

Or pick a part by name

Follow one message

Click a step to open the part it touches

Artisan Supply Co · built by Ben Seymour on the Laravel stack · described, not generatedThe code map, read from source