The May 2026 Laravel ecosystem update. @fonts Blade directive, Interruptible jobs, subagent support, Cloud Scale-to-Zero, and more.
Listen to this pageabout 3 min
May 2026 delivered practical, large-scale updates including full-stack Scale-to-Zero and Managed Queues for Laravel Cloud, font optimization, and multi-agent pipelines.Source: Laravel May Product Updates
The new @fonts directive automatically handles the <link rel="preload"> tags, @font-face styles, and HTTP/2 push headers needed for loading web fonts. It reads the font manifest generated by the Vite font plugin and injects the required elements in a single step.
{{-- Load all fonts --}}@fonts{{-- Only specific font families --}}@fonts(["sans", "mono"])
@fonts optimizes performance by controlling only the fonts needed per page and preventing unnecessary preloads.
The new Interruptible interface allows jobs to react when the queue worker receives SIGTERM during a deployment. You can safely stop loops, release locks, save state, and so on before the worker shuts down.
use Illuminate\Contracts\Queue\Interruptible;use Illuminate\Contracts\Queue\ShouldQueue;class ProcessLargeReport implements ShouldQueue, Interruptible{ public function handle(): void { foreach ($this->getChunks() as $chunk) { if ($this->shouldInterrupt()) { $this->saveProgress(); return; } $this->processChunk($chunk); } }}
API routes now automatically return error responses in JSON. Previously HTML was sometimes returned from API routes depending on conditions; routes defined in api.php are now guaranteed to return JSON responses.
A --stop-when-empty option has been added that automatically stops the worker when the queue becomes empty. Handy for batch processing or CI environments where workers should exit when the queue drains.
Laravel AI agents can now delegate to other agents. Return any agent from the tools() method and the parent agent’s LLM invokes it just like a regular tool. Context is isolated, so conversation history doesn’t get mixed up.
class OrchestratorAgent extends Agent{ public function tools(): array { return [ new AnalysisAgent(), new WritingAgent(), new SearchTool(), ]; }}
Full-stack Scale-to-Zero (starts in under 500ms, 20x faster), Managed Queues (auto-scaling workers, failed jobs dashboard), spending limits, plan updates ($5/month Starter plan)
Laravel Forge
Managed MySQL 8.4 (auto backups, read replicas, alerts), PHP 8.5 as default, Horizon auto-restart on env changes
Nightwatch
The MCP server now exposes performance data such as route execution time, query time, and job execution metrics
Last modified on July 13, 2026
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Knowledge of Laravel","colors":{"primary":"#16A34A","light":"#07C983","dark":"#15803D"},"logo":{"light":"https://mintcdn.com/invokable/AuZ0xql2mAbUyZ99/logo/light.svg?fit=max\u0026auto=format\u0026n=AuZ0xql2mAbUyZ99\u0026q=85\u0026s=df0b7397202a6aa1c1f321620c5aa146","dark":"https://mintcdn.com/invokable/AuZ0xql2mAbUyZ99/logo/dark.svg?fit=max\u0026auto=format\u0026n=AuZ0xql2mAbUyZ99\u0026q=85\u0026s=a8a0340d86ff8aa90e9adfc98a0362d7","href":"/"},"favicon":"https://mintcdn.com/invokable/AuZ0xql2mAbUyZ99/favicon.svg?fit=max\u0026auto=format\u0026n=AuZ0xql2mAbUyZ99\u0026q=85\u0026s=8f5a03a681c95d31803fc237b5811065","api":{"playground":{"display":"simple"}},"navbar":{},"footer":{"socials":{"github":"https://github.com/invokable"}},"seo":{"metatags":{"canonical":"https://kawax.biz"},"indexing":"all"},"styling":{"eyebrows":"breadcrumbs","latex":true},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"interaction":{"drilldown":false},"metadata":{"timestamp":true},"navigation":{"languages":[{"language":"jp","default":true,"href":"jp/packages/laravel-boost-copilot-cli"},{"language":"en","href":"en/packages/laravel-boost-copilot-cli"},{"language":"de","href":"de/packages/laravel-boost-copilot-cli"},{"language":"es","href":"es/packages/laravel-boost-copilot-cli"},{"language":"fr","href":"fr/packages/laravel-boost-copilot-cli"},{"language":"it","href":"it/packages/laravel-boost-copilot-cli"},{"language":"ko","href":"ko/packages/laravel-boost-copilot-cli"},{"language":"nl","href":"nl/packages/laravel-boost-copilot-cli"},{"language":"zh-Hans","href":"zh-CN/packages/laravel-boost-copilot-cli"},{"language":"zh-Hant","href":"zh-TW/packages/laravel-boost-copilot-cli"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"invokable","hasAudioNarration":true,"actualSubdomain":"invokable","customDomains":["kawax.biz"],"gitSource":{"type":"github","owner":"kawax","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af3a664c81e7498b331b83e","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"en","tag":"My Packages","count":145},{"language":"jp","tag":"マイパッケージ","count":145},{"language":"de","tag":"Meine Pakete","count":100},{"language":"es","tag":"Mis paquetes","count":100},{"language":"fr","tag":"Mes packages","count":100},{"language":"it","tag":"I miei pacchetti","count":100},{"language":"ko","tag":"My 패키지","count":100},{"language":"nl","tag":"Mijn packages","count":100},{"language":"zh-Hans","tag":"我的包","count":100},{"language":"zh-Hant","tag":"我的套件","count":100},{"language":"de","tag":"Fortgeschrittene Themen","count":81},{"language":"en","tag":"Advanced Topics","count":81},{"language":"es","tag":"Temas avanzados","count":81},{"language":"fr","tag":"Sujets avancés","count":81},{"language":"it","tag":"Argomenti avanzati","count":81},{"language":"jp","tag":"応用トピック","count":81},{"language":"ko","tag":"심화 주제","count":81},{"language":"nl","tag":"Geavanceerde onderwerpen","count":81},{"language":"zh-Hans","tag":"进阶主题","count":81},{"language":"zh-Hant","tag":"進階主題","count":81},{"language":"en","tag":"VOICEVOX","count":67},{"language":"jp","tag":"VOICEVOX","count":67},{"language":"de","tag":"Leitfaden","count":61},{"language":"en","tag":"Guide","count":61},{"language":"es","tag":"Guía","count":61},{"language":"fr","tag":"Guide","count":61},{"language":"it","tag":"Guida","count":61},{"language":"jp","tag":"ガイド","count":61},{"language":"ko","tag":"가이드","count":61},{"language":"nl","tag":"Gids","count":61},{"language":"zh-Hans","tag":"指南","count":61},{"language":"zh-Hant","tag":"指南","count":61},{"language":"de","tag":"Blog","count":47},{"language":"en","tag":"Blog","count":47},{"language":"es","tag":"Blog","count":47},{"language":"fr","tag":"Blog","count":47},{"language":"it","tag":"Blog","count":47},{"language":"jp","tag":"ブログ","count":47},{"language":"ko","tag":"블로그","count":47},{"language":"nl","tag":"Blog","count":47},{"language":"zh-Hans","tag":"博客","count":47},{"language":"zh-Hant","tag":"部落格","count":47},{"language":"en","tag":"VOICEVOX Engine API Reference","count":45},{"language":"jp","tag":"VOICEVOXエンジンAPIリファレンス","count":45},{"language":"de","tag":"GitHub Copilot","count":43},{"language":"en","tag":"GitHub Copilot","count":43},{"language":"es","tag":"GitHub Copilot","count":43},{"language":"fr","tag":"GitHub Copilot","count":43},{"language":"it","tag":"GitHub Copilot","count":43},{"language":"jp","tag":"GitHub Copilot","count":43},{"language":"ko","tag":"GitHub Copilot","count":43},{"language":"nl","tag":"GitHub Copilot","count":43},{"language":"zh-Hans","tag":"GitHub Copilot","count":43},{"language":"zh-Hant","tag":"GitHub Copilot","count":43},{"language":"de","tag":"Paketentwicklung","count":42},{"language":"en","tag":"Package Development","count":42},{"language":"es","tag":"Desarrollo de paquetes","count":42},{"language":"fr","tag":"Développement de packages","count":42},{"language":"it","tag":"Sviluppo di pacchetti","count":42},{"language":"jp","tag":"パッケージ開発","count":42},{"language":"ko","tag":"패키지 개발","count":42},{"language":"nl","tag":"Package-ontwikkeling","count":42},{"language":"zh-Hans","tag":"包开发","count":42},{"language":"zh-Hant","tag":"套件開發","count":42},{"language":"de","tag":"GitHub Copilot SDK for Laravel","count":41},{"language":"en","tag":"GitHub Copilot SDK for Laravel","count":41},{"language":"es","tag":"GitHub Copilot SDK for Laravel","count":41},{"language":"fr","tag":"GitHub Copilot SDK for Laravel","count":41},{"language":"it","tag":"GitHub Copilot SDK for Laravel","count":41},{"language":"jp","tag":"GitHub Copilot SDK for Laravel","count":41},{"language":"ko","tag":"GitHub Copilot SDK for Laravel","count":41},{"language":"nl","tag":"GitHub Copilot SDK for Laravel","count":41},{"language":"zh-Hans","tag":"GitHub Copilot SDK for Laravel","count":41},{"language":"zh-Hant","tag":"GitHub Copilot SDK for Laravel","count":41},{"language":"de","tag":"Tutorial","count":35},{"language":"en","tag":"Tutorial","count":35},{"language":"es","tag":"Tutorial","count":35},{"language":"fr","tag":"Tutoriel","count":35},{"language":"it","tag":"Tutorial","count":35},{"language":"jp","tag":"チュートリアル","count":35},{"language":"ko","tag":"튜토리얼","count":35},{"language":"nl","tag":"Tutorial","count":35},{"language":"zh-Hans","tag":"教程","count":35},{"language":"zh-Hant","tag":"教學","count":35},{"language":"de","tag":"SDK","count":27},{"language":"es","tag":"SDK","count":27},{"language":"fr","tag":"SDK","count":27},{"language":"it","tag":"SDK","count":27},{"language":"ko","tag":"SDK","count":27},{"language":"nl","tag":"SDK","count":27},{"language":"zh-Hans","tag":"SDK","count":27},{"language":"zh-Hant","tag":"SDK","count":27},{"language":"de","tag":"VOICEVOX","count":22},{"language":"es","tag":"VOICEVOX","count":22},{"language":"fr","tag":"VOICEVOX","count":22},{"language":"it","tag":"VOICEVOX","count":22},{"language":"ko","tag":"VOICEVOX","count":22},{"language":"nl","tag":"VOICEVOX","count":22},{"language":"zh-Hans","tag":"VOICEVOX","count":22},{"language":"zh-Hant","tag":"VOICEVOX","count":22}],"searchSettings":{"isFiltersEnabled":false,"showContentSnippets":true,"fullPageSearch":true}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":true}},"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"en/blog/changelog/202605","slug":"/en/blog/changelog/202605","pageMetadata":{"title":"May 2026 Laravel updates","description":"The May 2026 Laravel ecosystem update. @fonts Blade directive, Interruptible jobs, subagent support, Cloud Scale-to-Zero, and more.","sidebarTitle":"May 2026","href":"/en/blog/changelog/202605"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"The May 2026 Laravel ecosystem update. @fonts Blade directive, Interruptible jobs, subagent support, Cloud Scale-to-Zero, and more.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,hr:`hr`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`May 2026 delivered practical, large-scale updates including full-stack Scale-to-Zero and Managed Queues for Laravel Cloud, font optimization, and multi-agent pipelines.`}),`\n`,_jsxs(_components.p,{children:[`Source: `,_jsx(_components.a,{href:`https://laravel.com/blog/laravel-may-product-updates`,children:`Laravel May Product Updates`})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`laravel-framework`,children:`Laravel Framework`}),`\n`,_jsx(Heading,{level:`3`,id:`@fonts-blade-directive`,children:`@fonts Blade directive`}),`\n`,_jsxs(_components.p,{children:[`The new `,_jsx(_components.code,{children:`@fonts`}),` directive automatically handles the `,_jsx(_components.code,{children:`\u003clink rel=\"preload\">`}),` tags, `,_jsx(_components.code,{children:`@font-face`}),` styles, and HTTP/2 push headers needed for loading web fonts. It reads the font manifest generated by the Vite font plugin and injects the required elements in a single step.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`blade`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`blade`,children:_jsxs(_components.code,{language:`blade`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`{{-- Load all fonts --}}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`@fonts`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`{{-- Only specific font families --}}`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`@fonts`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`([`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"sans\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"mono\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`])`})]}),`\n`]})})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`@fonts`}),` optimizes performance by controlling only the fonts needed per page and preventing unnecessary preloads.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`interruptible-jobs-signal-aware-jobs`,children:`Interruptible Jobs (signal-aware jobs)`}),`\n`,_jsxs(_components.p,{children:[`The new `,_jsx(_components.code,{children:`Interruptible`}),` interface allows jobs to react when the queue worker receives SIGTERM during a deployment. You can safely stop loops, release locks, save state, and so on before the worker shuts down.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`16`,language:`php`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`php`,children:_jsxs(_components.code,{language:`php`,numberOfLines:`16`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`use`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:` Illuminate\\\\Contracts\\\\Queue\\\\`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`Interruptible`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`use`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:` Illuminate\\\\Contracts\\\\Queue\\\\`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`ShouldQueue`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`class`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` ProcessLargeReport`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` implements`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` ShouldQueue`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`Interruptible`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` public`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` handle`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` void`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` foreach`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`$this`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`getChunks`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`() `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`as`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` $chunk`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`$this`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`shouldInterrupt`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` $this`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`saveProgress`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` $this`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`processChunk`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$chunk`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`json-exceptions-default-on-api-routes`,children:`JSON exceptions default on API routes`}),`\n`,_jsxs(_components.p,{children:[`API routes now automatically return error responses in JSON. Previously HTML was sometimes returned from API routes depending on conditions; routes defined in `,_jsx(_components.code,{children:`api.php`}),` are now guaranteed to return JSON responses.`]}),`\n`,_jsx(Heading,{level:`3`,id:`storage-cache-store`,children:`Storage cache store`}),`\n`,_jsxs(_components.p,{children:[`A new `,_jsx(_components.code,{children:`storage`}),` cache store has been added. It uses the filesystem as the cache backend but leverages Laravel’s storage configuration.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`php`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`php`,children:_jsxs(_components.code,{language:`php`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// config/cache.php`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'stores'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'storage'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'driver'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =>`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'storage'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'disk'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =>`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'local'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'path'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =>`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'framework/cache'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`disk-storage-for-large-sqs-payloads`,children:`Disk storage for large SQS payloads`}),`\n`,_jsx(_components.p,{children:`An option has been added to store payloads on disk when they are too large for SQS (over 256KB). Useful when queueing large data.`}),`\n`,_jsx(Heading,{level:`3`,id:`scheduled-command-environment-filter`,children:`Scheduled command environment filter`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`schedule:list`}),` command can now filter by environment.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`php`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` artisan`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` schedule:list`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --environment=production`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`worker-stop-when-empty-option`,children:`Worker stop-when-empty option`}),`\n`,_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`--stop-when-empty`}),` option has been added that automatically stops the worker when the queue becomes empty. Handy for batch processing or CI environments where workers should exit when the queue drains.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`php`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` artisan`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` queue:work`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --stop-when-empty`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`foreignuuidfor-schema-helper`,children:`foreignUuidFor schema helper`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`foreignUuidFor()`}),` has been added as the UUID counterpart to `,_jsx(_components.code,{children:`foreignIdFor()`}),`.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`php`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`php`,children:_jsxs(_components.code,{language:`php`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`Schema`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`table`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'posts'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`function`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`Blueprint`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` $table`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` $table`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`foreignUuidFor`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`User`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`class`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`constrained`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`]})})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`ai-subagent-support`,children:`AI subagent support`}),`\n`,_jsxs(_components.p,{children:[`Laravel AI agents can now delegate to other agents. Return any agent from the `,_jsx(_components.code,{children:`tools()`}),` method and the parent agent’s LLM invokes it just like a regular tool. Context is isolated, so conversation history doesn’t get mixed up.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`11`,language:`php`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`php`,children:_jsxs(_components.code,{language:`php`,numberOfLines:`11`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`class`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` OrchestratorAgent`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` extends`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` Agent`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` public`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` tools`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` array`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` AnalysisAgent`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` WritingAgent`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` SearchTool`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(),`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ];`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`inertia-3-x`,children:`Inertia 3.x`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`mode`}),` option for `,_jsx(_components.code,{children:`router.poll`})]}),`: Configure the polling behavior mode`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`Dynamic data in `,_jsx(_components.code,{children:`usePoll`})]}),`: Update data dynamically during polling`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`Inertia.once`})}),`: Support for events that fire only once`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`rescue`}),` slot for `,_jsx(_components.code,{children:`\u003cDeferred>`})]}),`: Fallback when a deferred prop fails`]}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`pao-php-agentic-output`,children:`PAO (PHP Agentic Output)`}),`\n`,_jsx(_components.p,{children:`PAO is now included by default in the starter kits. The following features have also been added:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Rector support`}),`: PAO now processes Rector’s JSON output as well`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`PHPStan agent guidance`}),`: Adds guidance that tells agents how to fix the reported issues`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`PAO_FORCE`}),` environment variable`]}),`: Forcibly enable PAO mode`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Artisan RECTOR support`}),`: PAO now supports Artisan commands`]}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`laravel-cloud-laravel-forge-and-nightwatch`,children:`Laravel Cloud, Laravel Forge, and Nightwatch`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Product`}),_jsx(_components.th,{children:`Key updates`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Laravel Cloud`})}),_jsx(_components.td,{children:`Full-stack Scale-to-Zero (starts in under 500ms, 20x faster), Managed Queues (auto-scaling workers, failed jobs dashboard), spending limits, plan updates ($5/month Starter plan)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Laravel Forge`})}),_jsx(_components.td,{children:`Managed MySQL 8.4 (auto backups, read replicas, alerts), PHP 8.5 as default, Horizon auto-restart on env changes`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Nightwatch`})}),_jsx(_components.td,{children:`The MCP server now exposes performance data such as route execution time, query time, and job execution metrics`})]})]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"May 2026 Laravel updates","description":"The May 2026 Laravel ecosystem update. @fonts Blade directive, Interruptible jobs, subagent support, Cloud Scale-to-Zero, and more.","sidebarTitle":"May 2026","href":"/en/blog/changelog/202605"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Laravel Framework","slug":"laravel-framework","depth":2,"children":[{"title":"@fonts Blade directive","slug":"@fonts-blade-directive","depth":3,"children":[]},{"title":"Interruptible Jobs (signal-aware jobs)","slug":"interruptible-jobs-signal-aware-jobs","depth":3,"children":[]},{"title":"JSON exceptions default on API routes","slug":"json-exceptions-default-on-api-routes","depth":3,"children":[]},{"title":"Storage cache store","slug":"storage-cache-store","depth":3,"children":[]},{"title":"Disk storage for large SQS payloads","slug":"disk-storage-for-large-sqs-payloads","depth":3,"children":[]},{"title":"Scheduled command environment filter","slug":"scheduled-command-environment-filter","depth":3,"children":[]},{"title":"Worker stop-when-empty option","slug":"worker-stop-when-empty-option","depth":3,"children":[]},{"title":"foreignUuidFor schema helper","slug":"foreignuuidfor-schema-helper","depth":3,"children":[]}]},{"title":"AI subagent support","slug":"ai-subagent-support","depth":2,"children":[]},{"title":"Inertia 3.x","slug":"inertia-3-x","depth":2,"children":[]},{"title":"PAO (PHP Agentic Output)","slug":"pao-php-agentic-output","depth":2,"children":[]},{"title":"Laravel Cloud, Laravel Forge, and Nightwatch","slug":"laravel-cloud-laravel-forge-and-nightwatch","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"narration":{"path":"en/blog/changelog/202605","locale":"en","estimatedDurationSec":174},"subdomain":"invokable","siteName":"Knowledge of Laravel","title":"May 2026 Laravel updates - Knowledge of Laravel","relatedPagesConfig":{"enabled":true,"limit":5,"mode":"automatic"},"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"jp":{"href":"/jp/blog/changelog/202605","matchLevel":1},"en":{"href":"/en/blog/changelog/202605","matchLevel":0},"de":{"href":"/de/blog/changelog/202605","matchLevel":1},"es":{"href":"/es/blog/changelog/202605","matchLevel":1},"fr":{"href":"/fr/blog/changelog/202605","matchLevel":1},"it":{"href":"/it/blog/changelog/202605","matchLevel":1},"ko":{"href":"/ko/blog/changelog/202605","matchLevel":1},"nl":{"href":"/nl/blog/changelog/202605","matchLevel":1},"zh-Hans":{"href":"/zh-CN/blog/changelog/202605","matchLevel":1},"zh-Hant":{"href":"/zh-TW/blog/changelog/202605","matchLevel":1}}},"lastModified":"2026-07-13T21:16:44.784Z","gitLastModified":"2026-07-13T21:15:13.000Z","originalFileLocation":"en/blog/changelog/202605.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"The May 2026 Laravel ecosystem update. @fonts Blade directive, Interruptible jobs, subagent support, Cloud Scale-to-Zero, and more.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Knowledge of Laravel\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/invokable/pboFjibLpJPX3oCo/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/invokable/pboFjibLpJPX3oCo/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/invokable/pboFjibLpJPX3oCo/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/invokable/pboFjibLpJPX3oCo/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/invokable/pboFjibLpJPX3oCo/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/invokable/pboFjibLpJPX3oCo/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/invokable/pboFjibLpJPX3oCo/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/invokable/pboFjibLpJPX3oCo/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/invokable/pboFjibLpJPX3oCo/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"May 2026 Laravel updates - Knowledge of Laravel\">\u003cmeta data-mint-head property=\"og:description\" content=\"The May 2026 Laravel ecosystem update. @fonts Blade directive, Interruptible jobs, subagent support, Cloud Scale-to-Zero, and more.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Knowledge of Laravel\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://kawax.biz/en/blog/changelog/202605\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://invokable.mintlify.site/_mintlify/api/og/v2?division=Changelog\u0026amp;title=May+2026+Laravel+updates\u0026amp;description=The+May+2026+Laravel+ecosystem+update.+%40fonts+Blade+directive%2C+Interruptible+jobs%2C+subagent+support%2C+Cloud+Scale-to-Zero%2C+and+more.\u0026amp;theme=cef70bdc0dd1884481ab7c5d\u0026amp;signature=f9fa301d752c8d4b827b6a61202f5d8a6a54c9bd890e17b546a33ee8af40998f\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"May 2026 Laravel updates - Knowledge of Laravel\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"The May 2026 Laravel ecosystem update. @fonts Blade directive, Interruptible jobs, subagent support, Cloud Scale-to-Zero, and more.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://invokable.mintlify.site/_mintlify/api/og/v2?division=Changelog\u0026amp;title=May+2026+Laravel+updates\u0026amp;description=The+May+2026+Laravel+ecosystem+update.+%40fonts+Blade+directive%2C+Interruptible+jobs%2C+subagent+support%2C+Cloud+Scale-to-Zero%2C+and+more.\u0026amp;theme=cef70bdc0dd1884481ab7c5d\u0026amp;signature=f9fa301d752c8d4b827b6a61202f5d8a6a54c9bd890e17b546a33ee8af40998f\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/invokable/pboFjibLpJPX3oCo/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Knowledge of Laravel\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#16A34A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://kawax.biz/en/blog/changelog/202605\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/en/blog/changelog/202605.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://kawax.biz/en/blog/changelog/202605\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://kawax.biz/jp/blog/changelog/202605\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"de\" href=\"https://kawax.biz/de/blog/changelog/202605\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"es\" href=\"https://kawax.biz/es/blog/changelog/202605\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fr\" href=\"https://kawax.biz/fr/blog/changelog/202605\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"it\" href=\"https://kawax.biz/it/blog/changelog/202605\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://kawax.biz/ko/blog/changelog/202605\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"nl\" href=\"https://kawax.biz/nl/blog/changelog/202605\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh-Hans\" href=\"https://kawax.biz/zh-CN/blog/changelog/202605\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh-Hant\" href=\"https://kawax.biz/zh-TW/blog/changelog/202605\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://kawax.biz/jp/blog/changelog/202605\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://kawax.biz/#organization\",\"name\":\"Knowledge of Laravel\",\"url\":\"https://kawax.biz\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/invokable/AuZ0xql2mAbUyZ99/logo/light.svg?fit=max\u0026auto=format\u0026n=AuZ0xql2mAbUyZ99\u0026q=85\u0026s=df0b7397202a6aa1c1f321620c5aa146\"}},{\"@type\":\"WebSite\",\"@id\":\"https://kawax.biz#website\",\"name\":\"Knowledge of Laravel\",\"url\":\"https://kawax.biz\",\"publisher\":{\"@id\":\"https://kawax.biz/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://kawax.biz/en/blog/changelog/202605#webpage\",\"url\":\"https://kawax.biz/en/blog/changelog/202605\",\"name\":\"May 2026 Laravel updates\",\"description\":\"The May 2026 Laravel ecosystem update. @fonts Blade directive, Interruptible jobs, subagent support, Cloud Scale-to-Zero, and more.\",\"dateModified\":\"2026-07-13T21:15:13.000Z\",\"isPartOf\":{\"@id\":\"https://kawax.biz#website\"},\"breadcrumb\":{\"@id\":\"https://kawax.biz/en/blog/changelog/202605#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://kawax.biz/en/blog/changelog/202605#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Changelog\",\"item\":\"https://kawax.biz/en/blog/changelog/202610\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"May 2026 Laravel updates\",\"item\":\"https://kawax.biz/en/blog/changelog/202605\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://kawax.biz/en/blog/changelog/202605#article\",\"headline\":\"May 2026 Laravel updates\",\"name\":\"May 2026 Laravel updates\",\"description\":\"The May 2026 Laravel ecosystem update. @fonts Blade directive, Interruptible jobs, subagent support, Cloud Scale-to-Zero, and more.\",\"url\":\"https://kawax.biz/en/blog/changelog/202605\",\"mainEntityOfPage\":{\"@id\":\"https://kawax.biz/en/blog/changelog/202605#webpage\"},\"dateModified\":\"2026-07-13T21:15:13.000Z\",\"publisher\":{\"@id\":\"https://kawax.biz/#organization\"},\"isPartOf\":{\"@id\":\"https://kawax.biz#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Knowledge of Laravel\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Knowledge of Laravel\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/en/blog/changelog/202605.md","siteName":"Knowledge of Laravel","nav":{"global":null,"languages":[{"language":"jp","default":true,"pages":[{"title":"jp","href":"/jp/blog/changelog/202605"}]},{"language":"en","tabs":[{"tab":"My Packages","pages":[{"title":"My Packages","href":"/en/packages/laravel-boost-copilot-cli"}]},{"tab":"Tutorial","pages":[{"title":"Tutorial","href":"/en/introduction"}]},{"tab":"Guide","pages":[{"title":"Guide","href":"/en/lifecycle"}]},{"tab":"Advanced Topics","pages":[{"title":"Advanced Topics","href":"/en/advanced/mcp-server"}]},{"tab":"Blog","groups":[{"group":"Changelog","pages":[{"title":"October 2026 Laravel updates","sidebarTitle":"October 2026","href":"/en/blog/changelog/202610"},{"title":"September 2026 Laravel updates","sidebarTitle":"September 2026","href":"/en/blog/changelog/202609"},{"title":"August 2026 Laravel updates","sidebarTitle":"August 2026","href":"/en/blog/changelog/202608"},{"title":"July 2026 Laravel updates","sidebarTitle":"July 2026","href":"/en/blog/changelog/202607"},{"title":"June 2026 Laravel updates","description":"The June 2026 Laravel ecosystem update. Bus::bulk(), Postgres transaction pooler support, MCP client/server, the artisan dev command, route metadata, and more.","sidebarTitle":"June 2026","href":"/en/blog/changelog/202606"},{"title":"May 2026 Laravel updates","sidebarTitle":"May 2026","href":"/en/blog/changelog/202605"},{"title":"April 2026 Laravel updates","description":"The April 2026 Laravel ecosystem update. Passkeys (passwordless authentication), Debounceable Jobs, MCP UI App, Redis Cluster support, and more.","sidebarTitle":"April 2026","href":"/en/blog/changelog/202604"},{"title":"March 2026 Laravel updates","sidebarTitle":"March 2026","href":"/en/blog/changelog/202603"}]},{"group":"Laravel 13","pages":[{"title":"Laravel 13 new features overview","href":"/en/blog/laravel-13-new-features"}]},{"group":"Products","pages":[{"title":"Laravel Cloud — a full look at the Laravel-native PaaS","href":"/en/blog/laravel-cloud"},{"title":"Laravel Cloud Hibernation (auto-sleep)","href":"/en/blog/laravel-cloud-hibernation"},{"title":"Getting started with Laravel Nightwatch","href":"/en/blog/nightwatch-introduction"},{"title":"Laravel Cloud CLI — operate Laravel Cloud from your terminal","href":"/en/blog/laravel-cloud-cli"},{"title":"From Correct Code to Idiomatic Laravel: What's Next for Boost Benchmarks","sidebarTitle":"Boost Benchmarks: What's Next","href":"/en/blog/boost-benchmarks-idiomatic-laravel"},{"title":"Laravel AI agents now support MCP servers","href":"/en/blog/ai-sdk-mcp-client"}]},{"group":"Package Introductions","pages":[{"title":"⚡ Getting started with Livewire 4 — reactive UIs without JavaScript","href":"/en/blog/livewire-introduction"},{"title":"Build SPAs with Inertia.js","href":"/en/blog/inertia-introduction"},{"title":"Getting started with Laravel testing using Pest PHP","href":"/en/blog/pest-introduction"},{"title":"Laravel Pennant real-world use cases","href":"/en/blog/laravel-pennant"},{"title":"Laravel Telescope hands-on techniques","href":"/en/blog/telescope-introduction"},{"title":"Introducing Laravel Wayfinder","href":"/en/blog/wayfinder-introduction"},{"title":"Introducing the Blaze package","href":"/en/blog/blaze-introduction"}]},{"group":"New Repository Research","pages":[{"title":"Laravel Multiplex — a TUI that manages your local development processes","href":"/en/blog/multiplex-introduction"},{"title":"Laravel Maestro — the starter kit orchestrator","href":"/en/blog/maestro-introduction"},{"title":"laravel/agent-skills — Laravel's official AI agent skills","href":"/en/blog/agent-skills-introduction"},{"title":"Laravel's new code analysis ecosystem — surveyor / ranger / roster","href":"/en/blog/laravel-ecosystem-analysis"},{"title":"Laravel Sentinel — route protection middleware research","href":"/en/blog/sentinel-introduction"},{"title":"Laravel Passkeys initial research (passkeys-server + @laravel/passkeys)","href":"/en/blog/passkeys-introduction"},{"title":"Laravel Agent Detector — AI agent detection package","href":"/en/blog/agent-detector-introduction"},{"title":"Laravel PAO — output optimization for AI agents","href":"/en/blog/pao-introduction"},{"title":"Laravel Chisel — a post-install script library for starter kits","sidebarTitle":"Laravel Chisel","href":"/en/blog/chisel-introduction"},{"title":"Laravel LSP — extending IDE features via the Language Server Protocol","href":"/en/blog/laravel-lsp-introduction"},{"title":"laravel/symfony-on-cloud — run Symfony apps on Laravel Cloud","href":"/en/blog/symfony-on-cloud-introduction"},{"title":"Laravel Package Skeleton — the official starter template for packages","sidebarTitle":"Laravel Package Skeleton","href":"/en/blog/package-skeleton-introduction"},{"title":"Laravel Doctor — application diagnostics tool","href":"/en/blog/laravel-doctor-introduction"},{"title":"cpx 2.0 — Composer Package Executor gets a full rewrite","sidebarTitle":"cpx 2.0","href":"/en/blog/cpx-introduction"}]},{"group":"Upgrade Guides","pages":[{"title":"Upgrade guide: Laravel 12 to 13","href":"/en/blog/upgrade-12-to-13"},{"title":"Upgrade guide: Laravel 11 to 12","href":"/en/blog/upgrade-11-to-12"},{"title":"Upgrading from Laravel 10 to 11","href":"/en/blog/upgrade-10-to-11"},{"title":"Upgrading from Laravel 9 to 10","href":"/en/blog/upgrade-9-to-10"},{"title":"Upgrading from Laravel 8 to 9","href":"/en/blog/upgrade-8-to-9"}]},{"group":"Authentication","pages":[{"title":"Migration guide from laravel/ui to Fortify","href":"/en/blog/ui-to-fortify"}]},{"group":"Frontend","pages":[{"title":"Getting started with Vue.js — the essentials for using it with Inertia × Laravel","href":"/en/blog/vue-introduction"},{"title":"Getting started with React — the essentials for using it with Inertia × Laravel","href":"/en/blog/react-introduction"},{"title":"Getting started with Svelte — the essentials for using it with Inertia × Laravel","href":"/en/blog/svelte-introduction"}]},{"group":"Environment Setup","pages":[{"title":"Installing PHP, Composer, and Node.js with Homebrew (macOS)","href":"/en/blog/mac-setup"},{"title":"Installing PHP, Composer, and Node.js on WSL (Windows)","href":"/en/blog/windows-setup"}]}]}]},{"language":"de","pages":[{"title":"de","href":"/de/blog/changelog/202605"}]},{"language":"es","pages":[{"title":"es","href":"/es/blog/changelog/202605"}]},{"language":"fr","pages":[{"title":"fr","href":"/fr/blog/changelog/202605"}]},{"language":"it","pages":[{"title":"it","href":"/it/blog/changelog/202605"}]},{"language":"ko","pages":[{"title":"ko","href":"/ko/blog/changelog/202605"}]},{"language":"nl","pages":[{"title":"nl","href":"/nl/blog/changelog/202605"}]},{"language":"zh-Hans","pages":[{"title":"zh-Hans","href":"/zh-CN/blog/changelog/202605"}]},{"language":"zh-Hant","pages":[{"title":"zh-Hant","href":"/zh-TW/blog/changelog/202605"}]}]},"basePath":"","title":"May 2026 Laravel updates - Knowledge of Laravel","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":["2bfc744e19"],"chunks":["NarrationPlayer-B8rALa9K.js","types-CiTgMxws.js","shallow-BG4cT0fH.js"]}