Laravel Framework
Bus::bulk() — bulk job dispatch
You can now register large numbers of jobs with a single database INSERT. Bulk INSERTs are performed per queue and connection, eliminating the cost of inserting one at a time.Postgres transaction pooler support
Framework-level support for transaction-mode Postgres connection poolers such as PgBouncer, AWS RDS Proxy, and Neon has been added.If you need a direct connection for schema operations or DDL statements, append
::direct to the connection name to bypass the pooler.
DB::connection('pgsql::direct')->statement('CREATE INDEX ...')MCP client and server tool support
Laravel AI agents can now use tools from remote MCP servers (over HTTP) and from local MCP server classes. Schema translation, wrapping, and invocation are all handled automatically.artisan dev command
artisan dev has been added, letting you launch every development process with a single command. The server, queue worker, log tail, and Vite all run concurrently with color-coded output.
Route metadata support
A->metadata() method has been added that lets you attach arbitrary metadata to routes. It’s fully compatible with route caching, and metadata set on a group is merged into child routes.
Non-retrying exception handler
You can now suppress retries for exceptions that don’t benefit from retrying (invalid input, permanent external failures, etc.).—without-migration-data flag for schema:dump
schema:dump can now generate a pure structural dump that omits rows from the migrations table.
Timezone fix for between()/unlessBetween()
Regardless of whethertimezone() is called before or after between() or unlessBetween(), the schedule now runs in the correct timezone.
Other framework changes
- Trait support in
Bus::bulk(): Queue attributes can be defined on traits - MariaDB vector indexes: Vector index support on MariaDB
attachFromStorage()helper: Attach files from storage to notificationMailMessagesCache::rememberWithState(): Stateful cache support- Parallel-test maintenance mode driver: With the
arraydriver, each process has its own independent maintenance state whenFilledEnum(): Conditional processing of Enum-backed fields- JSON Schema
anyOfsupport: JSON Schema’sanyOfcan now be used in validation
Inertia
Client\Request::uri(): Retrieve the URI of a client request- Anchor
targetattribute support: Usetarget="_blank"and similar on the<Link>component - Form
asyncoption: Form components now support asynchronous submission - Page info in
titleCallback: Page data is passed to the title callback