Skip to main content
In June 2026, Laravel Cloud added support for Symfony apps and Forge gained managed Valkey caches and object storage. The framework received substantial updates including bulk job dispatch, Postgres pooler support, and MCP client/server. Source: Laravel June Product Updates

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 ...')
The framework automatically handles emulated prepares, boolean binding, and everything else required by poolers.

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.
It auto-detects your Node.js package manager (npm, yarn, pnpm, bun). It’s Artisan’s official convention that replaces the traditional composer dev script.

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 whether timezone() 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 notification MailMessages
  • Cache::rememberWithState(): Stateful cache support
  • Parallel-test maintenance mode driver: With the array driver, each process has its own independent maintenance state
  • whenFilledEnum(): Conditional processing of Enum-backed fields
  • JSON Schema anyOf support: JSON Schema’s anyOf can now be used in validation

Inertia

  • Client\Request::uri(): Retrieve the URI of a client request
  • Anchor target attribute support: Use target="_blank" and similar on the <Link> component
  • Form async option: Form components now support asynchronous submission
  • Page info in titleCallback: Page data is passed to the title callback

Laravel Cloud and Laravel Forge

Last modified on July 13, 2026