• Makers Make by SaaSykit
  • Posts
  • Laravel 11.9-10 Released, Laravel Tips Every Developer Should Know, What is Vibe Coding? And is it worth the hype?& more

Laravel 11.9-10 Released, Laravel Tips Every Developer Should Know, What is Vibe Coding? And is it worth the hype?& more

Hey Makers 👋

It’s been a busy time in the Laravel world → two major releases back to back, and each one packed with beautiful features. ⚡️

In this issue, I’ve pulled together the standout updates, practical insights, and ready-to-use snippets so you can make the most of what’s new, without digging through changelogs.

Let’s dive in. 👇

  • Memoized Cache Driver
    Tim MacDonald introduced a new cache decorator that stores fetched values in memory during the current request lifecycle, preventing repeated hits to the underlying cache system.

Cache::memo()->get('key'); // First call hits the cache
Cache::memo()->get('key'); // Subsequent calls use memory
  • Improved Time Freezing in Tests
    Jason McCreary made freezeTime() and freezeSecond() more developer-friendly. When no callback is passed, they now return the frozen time directly:

$now = $this->freezeSecond();
// Do something...
$this->assertTrue($now->equalTo($model->updated_at));
  • DB Transaction Failure Callback
    Thanks to Davey Shafik, DB::transaction() now supports an onFailure callback:

DB::transaction(
    fn () => /* your DB logic */,
    onFailure: fn () => Notification::send($admin, new SomethingImportantBroke())
);
  • Model-Level Relationship Autoloading
    Serhii Litvinchuk expanded automatic relationship loading to work directly on single model instances—not just collections:

$post->withRelationshipAutoloading();
  • Fluent Object Creation Shortcut
    Michael Nabil added a Fluent::make() helper to instantiate fluent objects more cleanly:

use Illuminate\Support\Fluent;

$fluent = Fluent::make(['key' => 'value']);

From SaaSykit

Laravel is packed with powerful features and elegant APIs, but some of its best tricks are hiding in plain sight.  Hidden in plain sight. These lesser-known tricks can make your development workflow smoother, faster, and more enjoyable.

Whether you're scaling a serious SaaS or experimenting with something new, there's no excuse for wasting time on problems Laravel has already solved. These tips cut through the noise and show you how to make the most of the framework: cleaner code, fewer hacks, and more time spent actually building.

From the Community

Laravel simplifies testing exception flows through the Exceptions facade's assertReported method, providing a robust way to verify that exceptions are properly captured and reported in your applications.

Handling and reporting exceptions correctly is fundamental to building reliable applications, yet verifying this behavior in tests can be complex without proper tooling. Laravel's Exceptions facade solves this challenge with the assertReported method, enabling you to confirm specific exceptions are captured during test execution.

Laravel's Carbon library offers sophisticated date manipulation through intuitive navigation methods that simplify finding specific days and times in your applications.

Carbon provides a fluid interface for date navigation whether you need to locate the next occurrence of a particular day, the previous instance of a specific weekday, or precise times for scheduling. These methods transform complex date calculations into clean, understandable code.

Laravel comes packed with many ways to authenticate users. When installing a new application and wanting to add authentication to it, your choices are not limited. The options available for user authentication within Laravel include:

API testing is a critical aspect of modern software development, ensuring that the services we build and integrate work seamlessly. While developers often rely on dedicated tools like Postman and Insomnia, what many aren't aware of is that JetBrains' IDEs, including PhpStorm, offer powerful built-in features for handling HTTP requests.

Here are a few tips and tricks that I have learnt along the way to help optimize your database queries in Laravel. Sometimes, little changes can add up and make a big difference overall.

Adding a select() to your query means that you only retrieve the fields that you are going to use, rather than returning every field in your model. If your view doesn’t need the field then save some memory by only fetching and returning the fields you need.

It's easy to talk about Mulit-Factor Authentication and say it's important for "security reasons", but how much do we really know about MFA? How does it work? What does it protect us from? What different options are there? When should they be used?

There are a whole lot of questions around MFA, and today we're going to seek some answers!

All about SaaS

With the recent breakthroughs in AI and large language models, there has been a major shift in how we approach building software. One notable change is a new workflow called vibe coding, where you skip the traditional software development pattern and let AI help you build instead.

The market feels a lot like 2021 right now. Things are frothy.

From seed to growth, AI deals are getting done at nosebleed prices and sky-high multiples. It’s interesting to see this happen when many tech companies are hurting from raising at inflated prices just a few years back. We just saw this movie—like, yesterday.

Your company is unprofitable because you’re “spending to grow”—pumping money into sales and marketing faster than you’re collecting revenue, resulting in accelerated but unprofitable growth. This is what you’re supposed to do—so they say—to build a large enterprise.

Is this smart, or are you just creating a permanently-unprofitable company? How do you objectively measure whether you’re strategically trading dollars-today for profit-tomorrow, or whether your business model is broken?

I’ve certainly seen annual and month-to-month, and companies who shift from monthly to annual contracts over time, but I have to be honest - this is new to me. To go through the effort of selling an annual contract and THEN shifting back to month-to-month is not something I’ve encountered. It’s an interesting renewal strategy—one that eliminates the friction of a renewal process (I have to assume the monthly billing is based on an auto-renewal) but introduces some key financial and strategic considerations. While your approach is working well now, the long-term impact on valuation, cash flow, and customer commitment is worth thinking through.

In SaaS, churn is the boogeyman. Founders track net revenue retention, lifetime value, and the magical moment when a customer finally pays off their CAC and starts throwing off some margin.

But what if churn isn’t a bug? What if it is the business model?

That’s how I think about dating apps. Their goal is to get you out of the funnel. If they work, you churn—happily ever after.

In the analog world, it’s not all that different. Think: funeral homes and wedding planners. People die. People get married. Prob not coming back for either (well, def not the first).


Videos

Keep building, keep rocking! 🤘

Psst, are you building a SaaS?

SaaSykit is a multi-tenancy Laravel-based boilerplate with everything you need to build an awesome SaaS.