What's New in Laravel 13.16.0: artisan dev &amp; More | Mohamed Said       [Skip to content](#main)  [ ![](https://cdn.msaied.com/01KT78WE565VEMM3PSNQAAB0MH.png) Mohamed SaidLaravel Backend Engineer ](https://www.msaied.com/public) - [Home](https://www.msaied.com/public)
- [Projects](https://www.msaied.com/public/projects)
- [Articles](https://www.msaied.com/public/articles)
- [Certificates](https://www.msaied.com/public/certificates)
- [About](https://www.msaied.com/public#about)

           [  Contact](https://www.msaied.com/public#contact) Menu 

Menu
----

Close 

 - [HomeStart here](https://www.msaied.com/public)
- [ProjectsCase studies](https://www.msaied.com/public/projects)
- [ArticlesEngineering notes](https://www.msaied.com/public/articles)
- [CertificatesCredentials](https://www.msaied.com/public/certificates)
- [AboutHow I work](https://www.msaied.com/public#about)
- [ContactGet in touch](https://www.msaied.com/public#contact)

  [Start a conversation](https://www.msaied.com/public#contact) [WhatsApp](https://wa.me/201094619204) [Email](mailto:hello@msaied.com) 

 1. [Home](https://www.msaied.com/public)
2. /
3. [Articles](https://www.msaied.com/public/articles)
4. /
5. [Laravel](https://www.msaied.com/public/articles?category=laravel)
6. /
7. The artisan dev Command and What's New in Laravel 13.16.0

   [Laravel](https://www.msaied.com/public/articles?category=laravel) 

 The artisan dev Command and What's New in Laravel 13.16.0
==========================================================

 Laravel 13.16.0 ships a new `php artisan dev` command that runs your server, queue, logs, and Vite concurrently, plus enum-aware request helpers, `withCookies()` on all responses, and an array maintenance mode driver.

 ![](https://cdn.msaied.com/01M22N44A70A5MC2S599JP0MPH.webp) [Mohamed Said](https://www.msaied.com/public#person) Published 17 Jun 2026 · Updated 17 Jun 2026 · 3 min read

ShareCopy linkCopied

 ![The artisan dev Command and What's New in Laravel 13.16.0](https://cdn.msaied.com/227/38e77a6a8617f14f9445b7b9e1de8cc4.png) 

  On this page +1. [What's New in Laravel 13.16.0](#whats-new-in-laravel-13160)
2. [The php artisan dev Command](#the-codephp-artisan-devcode-command)
3. [whenFilledEnum() on Requests](#codewhenfilledenumcode-on-requests)
4. [withCookies() on All Responses](#codewithcookiescode-on-all-responses)
5. [Array Maintenance Mode Driver](#array-maintenance-mode-driver)
6. [Other Notable Changes](#other-notable-changes)
7. [Key Takeaways](#key-takeaways)

 What's New in Laravel 13.16.0
-----------------------------

Laravel 13.16.0 landed on June 17, 2026 with a handful of developer-experience improvements. Here is a breakdown of every notable addition.

### The `php artisan dev` Command

The headline feature is a new `php artisan dev` command that starts your development processes—server, queue worker, log tailing, and Vite—concurrently in a single terminal. Its default behavior mirrors the existing `composer dev` script, but configuration now lives in your application code rather than `composer.json`.

Register commands through the `DevCommands` class, typically inside a service provider:

```php
use Illuminate\Foundation\Console\DevCommands;

DevCommands::artisan('reverb:start');
DevCommands::register('stripe listen --forward-to ' . config('app.url'));

```

You can name a process explicitly and assign a terminal color:

```php
DevCommands::artisan('reverb:start', 'reverb')->orange();
DevCommands::register('stripe listen --forward-to ' . config('app.url'))->green();

```

Packages inside `vendor` cannot register commands automatically, keeping the list under your control. A companion `NodePackageManager` helper detects the correct package manager (npm, yarn, pnpm, or bun) from the lockfiles present, so generic commands resolve to the right runner.

> **Note:** Upgrade to v13.16.1, which contains a bug fix for registering the `artisan dev` command.

### `whenFilledEnum()` on Requests

The `InteractsWithData` trait gains a `whenFilledEnum()` method that converts a request value to a backed enum before invoking a callback. It replaces the manual `whenFilled()` → `tryFrom()` → null-check pattern:

```php
$request->whenFilledEnum('status', Status::class, function (Status $status) use ($query): void {
    $query->where('status', $status);
});

```

The callback fires only when the key is present, the class is a backed enum, and `tryFrom()` returns a valid case. Invalid values are silently skipped. An optional second callback runs as a fallback:

```php
$request->whenFilledEnum(
    'status',
    Status::class,
    fn (Status $status) => $query->where('status', $status),
    fn () => $query->where('status', Status::Active)
);

```

### `withCookies()` on All Responses

`withCookies()` has been promoted from `RedirectResponse` to `ResponseTrait`, making it available on every response type including `JsonResponse`:

```php
return response()->json($data)->withCookies([$cookieA, $cookieB, $cookieC]);

```

The change is fully additive and non-breaking.

### Array Maintenance Mode Driver

A new `array` driver joins the existing `file` and `cache` drivers for maintenance mode. It targets parallel testing scenarios where the file driver or `Cache` facade mocking can interfere with `php artisan up` and `down` calls.

### Other Notable Changes

- **Enums in `broadcastAs()`** — broadcast events can now return an enum for the event name, keeping names consistent across sender and receiver.
- **JSON Schema `anyOf` support** — plus a guard against unbounded `$ref` expansion to prevent runaway recursion in the deserializer.
- Fixed shell quoting when scheduled commands run as another user.
- Added support for queue attributes on traits.
- Improved return types across model scopes, connection callbacks, and callback-passthrough helpers.

Key Takeaways
-------------

- `php artisan dev` centralizes concurrent dev-process management inside your app code.
- `whenFilledEnum()` removes boilerplate when filtering requests by backed enum values.
- `withCookies()` is now available on any response, not just redirects.
- The `array` maintenance mode driver makes parallel test suites more reliable.
- Upgrade to **v13.16.1** to pick up the `artisan dev` registration fix.

---

*Source: [Laravel News — The artisan dev Command in Laravel 13.16.0](https://laravel-news.com/laravel-13-16-0)*

- [Laravel](https://www.msaied.com/public/articles?search=Laravel)
- [Laravel 13](https://www.msaied.com/public/articles?search=Laravel%2013)
- [Artisan](https://www.msaied.com/public/articles?search=Artisan)
- [PHP](https://www.msaied.com/public/articles?search=PHP)
- [Release](https://www.msaied.com/public/articles?search=Release)

 Frequently asked questions 
---------------------------

  What does `php artisan dev` do in Laravel 13.16.0?It starts your development processes—local server, queue worker, log tailing, and Vite—concurrently in one terminal. You configure which processes run by registering them via the `DevCommands` class in a service provider, keeping that configuration inside your application rather than in `composer.json`.

   How is `whenFilledEnum()` different from `whenFilled()` on a Laravel request?`whenFilledEnum()` automatically calls `tryFrom()` on the raw input value and passes a fully typed backed-enum instance to your callback. It silently skips invalid values and accepts an optional fallback callback, eliminating the manual `tryFrom()` and null-check steps you would need with plain `whenFilled()`.

   Why was an `array` maintenance mode driver added?The file-based driver and `Cache` facade mocking can conflict in parallel test runs when tests call `php artisan up` or `down`. The new `array` driver keeps maintenance state in memory for the duration of the test process, avoiding those conflicts.

   ![Mohamed Said](https://cdn.msaied.com/01M22N44A70A5MC2S599JP0MPH.webp)About the author
----------------

[Mohamed Said](https://www.msaied.com/public#person)Senior Backend Engineer specializing in Laravel, scalable SaaS platforms, APIs, and cloud infrastructure. I build secure, high-performance web applications that help businesses grow.

[About](https://www.msaied.com/public#about) [GitHub ↗](https://github.com/EG-Mohamed) [LinkedIn ↗](https://www.linkedin.com/in/msaiedm/) [WhatsApp ↗](https://wa.me/201094619204) [Email Address ↗](mailto:hello@msaied.com) [My CV ↗](https://drive.google.com/file/u/0/d/1MF20IPRJyzfy32mhEutjL5EpSls0w2Q8/view)  

   [Previous articleLaravel Queues at Scale: Backpressure, Overflow Routing, and Dead-Letter Strategies](https://www.msaied.com/public/articles/laravel-queues-at-scale-backpressure-overflow-routing-and-dead-letter-strategies) [Next articleLaravel Signed Routes and Temporary URLs: Secure Link Patterns Beyond the Basics](https://www.msaied.com/public/articles/laravel-signed-routes-and-temporary-urls-secure-link-patterns-beyond-the-basics)  

   On this page
-------------

1. [What's New in Laravel 13.16.0](#whats-new-in-laravel-13160)
2. [The php artisan dev Command](#the-codephp-artisan-devcode-command)
3. [whenFilledEnum() on Requests](#codewhenfilledenumcode-on-requests)
4. [withCookies() on All Responses](#codewithcookiescode-on-all-responses)
5. [Array Maintenance Mode Driver](#array-maintenance-mode-driver)
6. [Other Notable Changes](#other-notable-changes)
7. [Key Takeaways](#key-takeaways)

 ###  Have a technical challenge?

 Tell me what you’re building. I reply within two working days.

[Start a conversation](https://www.msaied.com/public#contact) 

   Related articles
-----------------

 [ ![](https://cdn.msaied.com/740/cce86edc21eddcbdd2f2454fadaf9c70.png)  · 3 min read### The Pipeline Pattern in Laravel: Custom Pipelines Beyond Middleware

5 Oct 2026 ](https://www.msaied.com/public/articles/the-pipeline-pattern-in-laravel-custom-pipelines-beyond-middleware-1) [ ![](https://cdn.msaied.com/739/2d6897fdcdcf090613f96f72a64b8a78.png)  · 4 min read### MySQL Full-Text Search in Laravel: Indexes, Relevance Scoring, and Boolean Mode

4 Oct 2026 ](https://www.msaied.com/public/articles/mysql-full-text-search-in-laravel-indexes-relevance-scoring-and-boolean-mode) [ ![](https://cdn.msaied.com/738/073696a3fefe18bec825beec5ac658f5.png)  · 4 min read### Laravel Queue Rate-Limited Middleware: Throttling Jobs Without Losing Work

4 Oct 2026 ](https://www.msaied.com/public/articles/laravel-queue-rate-limited-middleware-throttling-jobs-without-losing-work) 

  Have a technical challenge?
----------------------------

Tell me what you’re building. I reply within two working days.

 [Discuss your project ↗](https://www.msaied.com/public#contact) 

  © 2026 Mohamed Said · Built with Laravel, meant to last.Senior Backend Engineer specializing in Laravel, scalable SaaS platforms, APIs, and cloud infrastructure. I build secure, high-performance web applications that help businesses grow.

 - [Home](https://www.msaied.com/public)
- [Articles](https://www.msaied.com/public/articles)
- [Certificates](https://www.msaied.com/public/certificates)
- [GitHub](https://github.com/EG-Mohamed)
- [LinkedIn](https://www.linkedin.com/in/msaiedm/)
- [WhatsApp](https://wa.me/201094619204)
- [Email Address](mailto:hello@msaied.com)
- [My CV](https://drive.google.com/file/u/0/d/1MF20IPRJyzfy32mhEutjL5EpSls0w2Q8/view)
- [Sitemap](https://www.msaied.com/public/sitemap.xml)
