Laravel 13.25: Pause All Queues &amp; New artisan dev UI | Mohamed Said        [  ![Mohamed Said](https://cdn.msaied.com/01KT78WE565VEMM3PSNQAAB0MH.png)   Mohamed Said Laravel Backend Engineer  ](https://msaied.com) [ Home ](https://msaied.com) [ Projects ](https://msaied.com/projects) [ Articles  ](https://msaied.com/articles) [ Certificates ](https://msaied.com/certificates) [ Contact ](https://msaied.com#contact-section) 

       [  ](https://github.com/EG-Mohamed)       

 [ Home ](https://msaied.com) [ Projects ](https://msaied.com/projects) [ Articles ](https://msaied.com/articles) [ Certificates ](https://msaied.com/certificates) [ Contact ](https://msaied.com#contact-section) 

  [ home ](https://msaied.com)    [ articles ](https://msaied.com/articles)    Laravel 13.25: Pause All Queues at Once and a New artisan dev Terminal UI        On this page       1. [  What's New in Laravel 13.25 ](#whats-new-in-laravel-1325)
2. [  Pause Every Queue on Every Connection ](#pause-every-queue-on-every-connection)
3. [  artisan dev Gets a Tabbed Terminal UI ](#artisan-dev-gets-a-tabbed-terminal-ui)
4. [  Images as HTTP Responses ](#images-as-http-responses)
5. [  Queue Observability Additions ](#queue-observability-additions)
6. [  Other Notable Changes ](#other-notable-changes)
7. [  Key Takeaways ](#key-takeaways)

  ![Laravel 13.25: Pause All Queues at Once and a New artisan dev Terminal UI](https://cdn.msaied.com/542/021fe5b0399ae1b971b6b64e300d1751.png)

 [  Laravel ](https://msaied.com/articles?category=laravel)  #Laravel 13   #Queue Management   #artisan dev   #Image API   #Laravel Releases  

 Laravel 13.25: Pause All Queues at Once and a New artisan dev Terminal UI 
===========================================================================

     11 Aug 2026      4 min read    ![Mohamed Said](https://cdn.msaied.com/01M22N44A70A5MC2S599JP0MPH.webp)  Mohamed Said  

       Table of contents

1. [  01   What's New in Laravel 13.25  ](#whats-new-in-laravel-1325)
2. [  02   Pause Every Queue on Every Connection  ](#pause-every-queue-on-every-connection)
3. [  03   artisan dev Gets a Tabbed Terminal UI  ](#artisan-dev-gets-a-tabbed-terminal-ui)
4. [  04   Images as HTTP Responses  ](#images-as-http-responses)
5. [  05   Queue Observability Additions  ](#queue-observability-additions)
6. [  06   Other Notable Changes  ](#other-notable-changes)
7. [  07   Key Takeaways  ](#key-takeaways)

 What's New in Laravel 13.25
---------------------------

Laravel 13.25.0 was released on August 11, 2026, bringing a handful of quality-of-life improvements for queue management, local development, and image handling, alongside a set of targeted bug fixes.

---

Pause Every Queue on Every Connection
-------------------------------------

Previously, pausing queues during a deployment meant issuing a separate command for every connection/queue pair. Laravel 13.25 adds an `--all` flag to both `queue:pause` and `queue:resume`:

```bash
php artisan queue:pause --all
php artisan queue:resume --all

```

The same capability is available on the facade:

```php
use Illuminate\Support\Facades\Queue;

Queue::pauseAll();
Queue::resumeAll();

```

The global switch uses a single cache key that workers check alongside per-queue keys. Crucially, `resumeAll()` clears only the global flag — queues you paused individually stay paused, so a deploy script cannot accidentally restart a queue that was parked on purpose. Two new events, `QueuesPaused` and `QueuesResumed`, fire alongside the existing per-queue events.

---

artisan dev Gets a Tabbed Terminal UI
-------------------------------------

The `artisan dev` command previously used `concurrently`, which interleaved all process output into a single scrolling feed. It now runs through `@laravel/multiplex`, giving each process its own tab with search, per-process restart, and log clearing.

Three output modes are available:

- **tabs** (default) — each process in its own tab
- **stream** — one interleaved feed you can scroll and search
- **inline** — plain output, used automatically when there is no TTY

```bash
php artisan dev --stream
php artisan dev --timestamps --no-restart

```

You can set project-level defaults in a service provider:

```php
use Illuminate\Foundation\DevCommands;

DevCommands::stream();
DevCommands::withTimestamps();
DevCommands::disableAutoRestart();
DevCommands::bufferSize(5000);

```

When the command exits, buffered logs are printed to the terminal so nothing is lost. Windows falls back to `concurrently`; the new path requires Node v22.13+ and runs on macOS and Linux.

---

Images as HTTP Responses
------------------------

`Image` now implements `Responsable`, so you can return an image instance directly from a route:

```php
use Illuminate\Support\Facades\Image;

Route::get('/avatars/{user}', function (User $user) {
    return Image::fromStorage($user->avatar_path)
        ->cover(200, 200)
        ->toWebp()
        ->quality(80);
});

```

Two additional helpers ship alongside this:

- **`Image::fromStream()`** — builds an instance from a stream resource (e.g., `Storage::disk('s3')->readStream($path)`)
- **`toFormat()`** is now public — converts a user-supplied format string to the correct output method, throwing an `ImageException` for unsupported formats

---

Queue Observability Additions
-----------------------------

- **`UniqueJobSkipped` event** — fires when a `ShouldBeUnique` job is dropped because the lock is already held, making it easy to distinguish a working constraint from a stuck lock.
- **`$timeout` on `JobTimedOut`** — the event now carries the number of seconds that was exceeded.
- **`#[FailOnTimeout]` for notifications** — `SendQueuedNotifications` respects a `$failOnTimeout` property or `#[FailOnTimeout]` attribute on the notification class.
- **`QueueFake` assigns UUIDs** — faked jobs now match the shape of real driver jobs, making `$job->uuid` testable.

---

Other Notable Changes
---------------------

- **`withoutCookies(array)`** — expire multiple cookies in one call instead of chaining `withoutCookie()` repeatedly.
- **`foreignUlidFor()`** schema helper — completes the trio alongside `foreignIdFor()` and `foreignUuidFor()`, producing a `char(26)` column with the correct foreign key constraint.
- **`Request::all()` prefers input over files** — when an input field and a file field share the same key, the input value wins; `file()` is unaffected.

---

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

- `queue:pause --all` / `queue:resume --all` and `Queue::pauseAll()` / `Queue::resumeAll()` simplify zero-downtime deployments.
- `artisan dev` now uses `@laravel/multiplex` for a tabbed terminal UI on macOS/Linux (Node v22.13+ required).
- `Image` implements `Responsable` and gains `fromStream()` and a public `toFormat()`.
- `UniqueJobSkipped`, an expanded `JobTimedOut`, and `#[FailOnTimeout]` for notifications improve queue observability.
- `foreignUlidFor()` completes the schema helper trio for ULID-based foreign keys.

---

*Source: [Laravel News — Laravel 13.25.0](https://laravel-news.com/laravel-13-25-0)*

 Found this useful?

          [  ](https://twitter.com/intent/tweet?url=https%3A%2F%2Fmsaied.com%2Farticles%2Flaravel-1325-pause-all-queues-at-once-and-a-new-artisan-dev-terminal-ui&text=Laravel+13.25%3A+Pause+All+Queues+at+Once+and+a+New+artisan+dev+Terminal+UI) [  ](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fmsaied.com%2Farticles%2Flaravel-1325-pause-all-queues-at-once-and-a-new-artisan-dev-terminal-ui) 

 Frequently Asked Questions 
----------------------------

  3 questions  

     Q01  Does queue:resume --all also resume queues that were paused individually before the global pause?        No. `resumeAll()` clears only the global pause flag. Any queue you paused individually with `queue:pause {connection} {queue}` remains paused, so a deployment script cannot accidentally restart a queue that was intentionally parked. 

      Q02  What are the requirements for the new artisan dev terminal UI in Laravel 13.25?        The new `@laravel/multiplex`-based UI requires Node.js v22.13 or higher and runs on macOS and Linux. On Windows, the command automatically falls back to the previous `concurrently`-based runner. 

      Q03  How does Image::toFormat() differ from calling toWebp() or toAvif() directly?        `toFormat()` accepts a user-supplied format string and resolves it to the correct conversion method internally. It throws an `ImageException` for unsupported formats rather than silently falling through, making it safe to use with untrusted input such as a request parameter. 

  Continue reading

 More Articles 
---------------

 [ View all    ](https://msaied.com/articles) 

 [ ![Livewire v3 Internals: Morph Markers, JS Hooks, and Alpine Integration](https://cdn.msaied.com/707/0eb21e520c1216424fd97efe3608f4db.png) livewire laravel alpine 

### Livewire v3 Internals: Morph Markers, JS Hooks, and Alpine Integration

Go beyond the docs: understand how Livewire v3 diffs and patches the DOM with morph markers, intercept the lif...

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

 27 Sep 2026     3 min read  

  Read    

 ](https://msaied.com/articles/livewire-v3-internals-morph-markers-js-hooks-and-alpine-integration-5) [ ![Typed PHP 8.3 Enums as Eloquent Casts, Route Parameters, and Validation Rules](https://cdn.msaied.com/706/a9d051bc039469c10d1d4c5fc364e598.png) laravel php8.3 enums 

### Typed PHP 8.3 Enums as Eloquent Casts, Route Parameters, and Validation Rules

Go beyond basic enum casting. Learn how to wire PHP 8.3 enums into Eloquent, bind them as route model paramete...

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

 26 Sep 2026     1 min read  

  Read    

 ](https://msaied.com/articles/typed-php-83-enums-as-eloquent-casts-route-parameters-and-validation-rules-1) [ ![Octane State Leakage: Detecting and Fixing Shared-Memory Bugs in Laravel Workers](https://cdn.msaied.com/705/8e7dc5a87f9f9a30b8523ca5280e8f97.png) laravel octane performance 

### Octane State Leakage: Detecting and Fixing Shared-Memory Bugs in Laravel Workers

Laravel Octane keeps workers alive across requests, making shared state a silent killer. Learn how to detect,...

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

 26 Sep 2026     4 min read  

  Read    

 ](https://msaied.com/articles/octane-state-leakage-detecting-and-fixing-shared-memory-bugs-in-laravel-workers) 

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

Explore

- [Home](https://msaied.com)
- [Projects](https://msaied.com/projects)
- [Articles](https://msaied.com/articles)
- [Certificates](https://msaied.com/certificates)
- [Contact](https://msaied.com#contact-section)

Connect

- [   hello@msaied.com ](mailto:hello@msaied.com)
- [   +20 109 461 9204 ](tel:+201094619204)

© 2026 Mohamed Said. All rights reserved.

 [  ](https://github.com/EG-Mohamed) [  ](https://www.linkedin.com/in/msaiedm/) [  ](https://wa.me/201094619204) [  ](mailto:hello@msaied.com) [  ](https://drive.google.com/file/u/0/d/1MF20IPRJyzfy32mhEutjL5EpSls0w2Q8/view)
