Queue Facade assertPushedTimes - Laravel v12.49.0

I’m fairly sure by this point Taylor Otwell is more than likely fed up with seeing my face, but it was him that said “we must ship!” I’m continuing to commit and push PR’s so– this week covers Laravel v12.49.0 - and as usual there’s some funky additions! This blog post is mainly to go over my additions, as well - I’m not Laravel News! Queue assertPushedTimes Currently, when you want to assert a Job that’s been pushed to the queue a certain amount of times, we do something like: ...

January 28, 2026

Enums - Enums - Enums - Laravel v12.45

With the release of Laravel v12.45.0 it’s all about enums! Loads of methods now accept enums! A lot of methods now accept enums, which I think is pretty cool. I did however have a helping hand, so I’m a bit biased Persistent Cache Cache Facade Queue Paused / Resumed Events The below all have methods that now accept enums, or all of their methods do! This means we can easily change the enum value without having to slug through tests etc. ...

January 6, 2026

Improve Laravel Queue Speed

⚠️ Note: This feature is only available in Laravel v12.41.1 and above. If you’re running an earlier version, you’ll need to upgrade before being able to apply these changes. I recently discovered our Workers seemed to be hitting the database far too frequently. After digging into the Worker class, I figured out that it was down to the restart and pause polling that happens on each loop. I knew we could override the CacheManager class to change this behavior, but that felt… funky. It wasn’t obvious to developers, and it wasn’t really documented anywhere. So — I thought I’d open a PR, and luckily for me, it was accepted! 🎉 ...

December 3, 2025

Speeding up Laravel Jobs

When going through the Laravel Queue documentation, I noticed a section around Queued Relationships and the d-low is that essentially when you’re sending a model to a Job, if your model has relationships loaded, those relationships will also get loaded into the payload of the job. This isn’t always obvious! For example, take the below Job as an example: use App\Models\User; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; class WelcomeEmailJob implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; public function __construct(public User $user) { } public function handle() { // Some sending logic here... } } Because we’re expecting a User model its seralized, including the relations. ...

April 6, 2025