Mastering Laravel 8 Order By DESC For Data Sorting
Mastering Laravel 8 Order By DESC for Data Sorting
Hey there, guys! If you’ve been dabbling with Laravel 8 and found yourself needing to sort your data in reverse chronological order or from highest to lowest, you’re in the
perfect
place. Today, we’re diving deep into
Laravel 8 Order By DESC
, a super fundamental yet incredibly powerful feature that lets you dictate the flow of your information. Whether you’re displaying the latest blog posts, the most expensive products, or the newest user registrations, understanding
orderByDesc
is an absolute game-changer for presenting data intuitively to your users. We’ll explore everything from basic usage to advanced scenarios, making sure you walk away feeling like a Laravel sorting wizard. So, buckle up, because we’re about to make your data dance to your tune!
Table of Contents
- Unlocking Data Flow: An Introduction to
- Deep Dive into
- Basic Usage with Eloquent
- code
- Ordering by Multiple Columns
- Customizing Order with Raw Expressions
- Common Pitfalls and Best Practices
- Advanced
- Combining
- Ordering with Relationships
- Performance Considerations
- Real-World Examples and Use Cases for
- Blog Posts: Displaying the Latest First
- E-commerce: Sorting Products by Price (High to Low)
- User Activity Feeds: Newest Actions First
- Leaderboards/Rankings: Highest Scores at the Top
- Wrapping It Up: Your Journey with
Unlocking Data Flow: An Introduction to
orderBy
in Laravel 8
Alright, guys, let’s kick things off by understanding the backbone of data ordering in Laravel 8: the
orderBy
method. At its core,
orderBy
is your command to the database, telling it how you want your records arranged when they come back to your application. Think of it like organizing your playlist; you wouldn’t want your newest tracks buried at the bottom, right? Similarly, when you’re fetching data, the default order is often by the primary key (usually
id
) in ascending order, which might not always be what your users expect or what your application needs. This is where
orderBy
steps in, giving you precise control over the presentation of your information. The
orderBy
method allows you to specify a column by which to sort and then a direction:
ASC
for ascending (smallest to largest, A-Z, oldest to newest) or
DESC
for descending (largest to smallest, Z-A, newest to oldest). While
orderBy('column', 'asc')
is the explicit way to sort in ascending order, Laravel also provides a convenient
orderByDesc('column')
shorthand specifically for descending order, which is what we’ll be focusing on today. This method simplifies your code and makes your intentions clearer, especially when dealing with multiple sorting conditions. Mastering
orderBy
is crucial for creating dynamic and user-friendly interfaces, allowing users to easily navigate lists of items, search results, or any other collection of data. Without proper ordering, your data can look like a jumbled mess, making it difficult for users to find what they’re looking for or understand the hierarchy of information. We’re talking about everything from displaying the most recently added items first to showing high-priority tasks at the top of a list. The beauty of Laravel’s
orderBy
methods is how seamlessly they integrate with both Eloquent models and the Query Builder, offering a consistent and intuitive API for all your sorting needs. So, whether you’re working directly with your database tables or leveraging the power of your Eloquent models,
orderByDesc
will be your best friend for making your data not just accessible, but
meaningful
. Understanding this initial concept is pivotal before we dive into the specifics of
how
orderByDesc
makes your Laravel 8 application shine.
Deep Dive into
orderByDesc
in Laravel 8: Your Go-To for Reverse Order
Now, let’s get down to the nitty-gritty and talk about
orderByDesc
in Laravel 8
, guys. This method is specifically designed for those times when you need your data to be sorted in
descending
order, meaning from the highest value to the lowest, from Z to A, or from the newest timestamp to the oldest. It’s an indispensable tool for almost any application that deals with dynamic content. For instance, think about a blog: you’d always want the
latest
posts to appear at the top, right? Or an e-commerce site showcasing products, where users might want to see the
most expensive
items first. That’s precisely where
orderByDesc
shines, making your data immediately relevant and user-friendly. It’s essentially a shortcut for
orderBy('column_name', 'desc')
, providing cleaner and more readable code. We’ll explore its usage across various scenarios, from simple single-column sorts to more complex multi-column arrangements and even raw expressions. Get ready to master this essential sorting technique!
Basic Usage with Eloquent
For most Laravel developers,
Eloquent
is the go-to when interacting with the database, and
orderByDesc
integrates perfectly with it. When you’re working with your Eloquent models, you can simply chain the
orderByDesc
method directly onto your query. Let’s say you have a
Post
model, and you want to fetch all posts, sorted by their
created_at
timestamp, with the newest posts appearing first. You’d do something like this:
use App\Models\Post;
$latestPosts = Post::orderByDesc('created_at')->get();
Isn’t that slick, guys?
This single line of code tells Laravel to fetch all records from the
posts
table and arrange them in descending order based on the
created_at
column. So, if your
created_at
column stores timestamps like
2023-10-27 10:00:00
and
2023-10-26 15:30:00
, the post from
2023-10-27
will come
before
the post from
2023-10-26
. The same logic applies if you’re sorting by a numeric column, like
views_count
, where a post with 1000 views would appear before one with 500 views, or by an alphabetical column (e.g.,
title
), where ‘Zebra’ would precede ‘Apple’. Remember,
orderByDesc
is just a clean way of saying “order by this column, from largest to smallest value.” It makes your intentions clear and your code concise. This fundamental understanding is critical for building any list view where the most recent or highest-valued items need to be prioritized. It’s not just about dates; imagine sorting products by
price
(highest first), or users by
last_login
(most recent activity first). The possibilities are endless, and
orderByDesc
makes it effortlessly simple to implement.
orderByDesc
with Query Builder
While Eloquent is super convenient, sometimes you might find yourself needing to interact with the database using the
Query Builder
directly, especially when you’re dealing with raw queries or more complex joins that don’t neatly fit into an Eloquent model’s relationship. Good news, guys:
orderByDesc
works just as seamlessly with the Query Builder as it does with Eloquent! The syntax is almost identical, ensuring consistency across your Laravel 8 application. If you’re using
DB::table()
to build your queries, you’ll apply
orderByDesc
in the same way. Let’s say you’re fetching user data directly from the
users
table and want to list them by their
id
in reverse order (perhaps to see the newest registered users first, assuming
id
is auto-incrementing).
use Illuminate\Support\Facades\DB;
$newestUsers = DB::table('users')
->orderByDesc('id')
->get();
As you can see, the structure is virtually the same. You call
orderByDesc
after specifying your table, and then you apply any other constraints like
where
clauses or
limit
before finally calling
get()
to execute the query. This flexibility means you can leverage
orderByDesc
regardless of whether you’re using the full power of Eloquent models or opting for the more direct approach of the Query Builder. It’s about giving you the right tool for the job, ensuring that your data is always presented exactly how you need it. This method also works wonders when you’re performing aggregations or complex database operations where Eloquent models might introduce unnecessary overhead. The
DB::table()
approach, coupled with
orderByDesc
, gives you direct control over the query, which can be beneficial for performance-critical sections of your application or when integrating with legacy databases that don’t map perfectly to Eloquent’s conventions. So, whether you’re building a simple list or a complex dashboard,
orderByDesc
via the Query Builder remains a reliable and powerful option for sorting your data in reverse order.
Ordering by Multiple Columns
Sometimes, sorting by a single column just isn’t enough, right, guys? What if you want to sort your blog posts by their
category_id
first
, and
then
by their
created_at
date in descending order within each category? Laravel’s
orderBy
methods, including
orderByDesc
, allow you to
chain multiple sorting conditions
. The order in which you specify these methods matters significantly, as Laravel applies them sequentially. The first
orderBy
or
orderByDesc
clause will be the primary sorting key, and subsequent clauses will act as secondary (or tertiary, and so on) sorting keys, resolving ties from the preceding sort. Let’s illustrate this with an example. Imagine you have a list of products, and you want to sort them primarily by their
category_id
in ascending order, but within each category, you want the products with the highest
price
to appear first.
use App\Models\Product;
$sortedProducts = Product::orderBy('category_id', 'asc') // Primary sort: category_id ascending
->orderByDesc('price') // Secondary sort: price descending within each category
->get();
In this scenario, Laravel will first group all products by their
category_id
from smallest to largest. Then,
within each of those categories
, it will take the products and sort them again, this time by their
price
in descending order. So, if Category A has products priced at
\(10, \)
50, and
\(20, they'd appear as \)
50,
\(20, \)
10. If Category B has products priced at
\(30, \)
80, and
\(15, they'd appear as \)
80,
\(30, \)
15. And Category A would appear before Category B if
category_id
A is smaller than
category_id
B. This multi-column sorting capability is incredibly powerful for creating highly organized and detailed data presentations. It’s particularly useful in tables or lists where users might want to drill down into specifics after an initial general sort. Always remember that the order of your
orderBy
and
orderByDesc
calls directly dictates the hierarchy of your sorting logic. The first one is the boss, the second one resolves ties from the boss’s orders, and so on. This granular control over your data’s presentation is a cornerstone of building robust and user-friendly applications in Laravel 8.
Customizing Order with Raw Expressions
Sometimes, guys, your sorting needs go beyond simply ordering by a single column or even multiple columns in standard
ASC
or
DESC
fashion. What if you need to sort by a computed value, a conditional logic, or a database function that Laravel’s
orderBy
methods don’t directly support? This is where
orderByRaw
comes to the rescue!
orderByRaw
allows you to inject raw SQL expressions directly into your
ORDER BY
clause, giving you ultimate flexibility and control over your sorting logic. It’s like having a direct line to your database’s sorting capabilities, letting you craft highly specific and complex ordering instructions. For example, you might want to sort products by their
price
but with a specific rule that items marked as ‘featured’ should always appear at the very top, regardless of price, or perhaps you want to sort based on the length of a string column. Let’s look at an example where we want to sort users by their
name
but prioritize users whose
status
is ‘active’.
use App\Models\User;
$customSortedUsers = User::orderByRaw("CASE WHEN status = 'active' THEN 0 ELSE 1 END, name ASC")
->get();
In this powerful example,
orderByRaw
uses a
CASE
statement. This
CASE
statement assigns a value of
0
to ‘active’ users and
1
to all others. Since
0
comes before
1
in ascending order, all active users will be listed first. After that initial sort, the
name ASC
part takes over, sorting users by their name alphabetically
within
their respective groups (active users sorted by name, then non-active users sorted by name). This kind of custom sorting is incredibly useful for implementing business logic directly in your database queries, ensuring that specific items always receive priority in your lists. Another common use case for
orderByRaw
is sorting by a field that might contain mixed numeric and alphabetic data, or sorting by geographical distance using spatial functions. For instance,
orderByRaw('ST_Distance_Sphere(point(latitude, longitude), point(?, ?)) ASC', [$userLat, $userLon])
could sort results by proximity. While
orderByRaw
offers immense power,
always be mindful of SQL injection risks
when incorporating user-supplied input. It’s best to use parameter binding where possible, like in the
ST_Distance_Sphere
example, or ensure your raw input is thoroughly sanitized. For simple column sorts, stick to
orderBy
or
orderByDesc
, but for those truly unique sorting challenges,
orderByRaw
is your secret weapon in Laravel 8, allowing you to fine-tune your data presentation with surgical precision.
Common Pitfalls and Best Practices
Even with the seemingly straightforward
orderByDesc
in Laravel 8
, there are a few common pitfalls that new and even experienced developers can stumble upon, guys. Being aware of these can save you a lot of headaches down the line. First, one common mistake is assuming the default sort order. Remember, if you don’t explicitly specify an
orderBy
clause, the results might come back in an unpredictable order, or most often, by the primary key in ascending order. So, if you
always
need descending,
always
include
orderByDesc
. Second, be cautious with
N+1 query issues
when ordering by related model attributes. If you try to sort a collection of
Post
models by a column on their related
User
model without eagerly loading the relationship, Laravel might perform an N+1 query, significantly impacting performance. Instead of
Post::all()->sortByDesc(fn($post) => $post->user->name)
, which would hit the database N times, you should eager load:
Post::with('user')->get()->sortByDesc(fn($post) => $post->user->name)
for collection-level sorting, or even better, perform a
join
at the database level if possible:
Post::join('users', 'posts.user_id', '=', 'users.id')->orderByDesc('users.name')->select('posts.*')->get()
. The latter is generally more performant for large datasets. Another pitfall relates to
null
values
. How your database handles
null
values in
ORDER BY
clauses can vary (some put them first, some last). If
null
s are a concern, you might need to use
orderByRaw
with a
CASE
statement to explicitly handle them, for example,
orderByRaw('CASE WHEN column_name IS NULL THEN 1 ELSE 0 END, column_name DESC')
. This ensures consistent sorting behavior regardless of your database’s default. Finally, let’s talk
performance
. For large datasets, sorting can be an expensive operation, especially if you’re sorting by a column that isn’t indexed. Always consider adding database indexes to columns you frequently use in
ORDER BY
clauses. Without proper indexing, your database might have to perform a full table scan every time you sort, which can drastically slow down your application. Running
EXPLAIN
on your SQL queries can reveal if indexes are being used effectively. Prioritizing performance by judiciously adding indexes is a best practice that will keep your Laravel application snappy and responsive, especially as your data grows. Always ask yourself:
is this column frequently sorted or filtered?
If yes, it’s a strong candidate for an index. By keeping these common pitfalls in mind and adhering to these best practices, you’ll ensure your
orderByDesc
implementations are not only correct but also performant and robust in your Laravel 8 projects.
Advanced
orderBy
Scenarios in Laravel 8
Okay, guys, we’ve covered the basics and some solid best practices for
orderByDesc
in Laravel 8. But Laravel, being the awesome framework it is, allows for even more sophisticated sorting. We’re talking about situations where you need to combine different sorting directions, sort across relationships, or optimize performance for truly massive datasets. These advanced scenarios are where you can truly show off your Laravel chops and build incredibly flexible and efficient applications. Let’s delve into how you can tackle these more complex ordering challenges with confidence, ensuring your data is always presented in the most logical and performant way possible, no matter how intricate your requirements become. Understanding these techniques will elevate your Laravel development skills, allowing you to craft more dynamic and user-centric data displays, which is a significant win in today’s demanding web landscape.
Combining
orderBy
and
orderByDesc
Sometimes, you don’t just need everything sorted one way. You might have a nuanced requirement where you need to sort by one column in
ascending
order and then by another in
descending
order to break ties. This is totally possible and quite common, guys! Laravel’s chaining capability means you can mix and match
orderBy
and
orderByDesc
to achieve exactly the complex sorting hierarchy you need. For instance, consider a product catalog where you want to display products primarily sorted by their
category_id
in ascending order (Category A before Category B), but
within each category
, you want the most recently added products to appear first. This requires combining both
ASC
and
DESC
sorting directions across different columns.
use App\Models\Product;
$combinedSortedProducts = Product::orderBy('category_id', 'asc') // Primary sort: Categories A-Z
->orderByDesc('created_at') // Secondary sort: Newest products first within each category
->get();
In this example, the
orderBy('category_id', 'asc')
call sets the primary sorting rule. All products belonging to category ID 1 will appear before products from category ID 2, and so on. Then, for all the products that share the
same
category_id
, the
orderByDesc('created_at')
takes over, ensuring that within that specific category, the product with the most recent
created_at
timestamp appears first. This is a very powerful technique for creating highly structured and intuitively organized lists. You could even take this further, chaining a third
orderBy
or
orderByDesc
for another level of tie-breaking. For example, if two products in the same category were created at the exact same time (unlikely but possible!), you might then sort them by
name
alphabetically, or by
price
in descending order. The key takeaway here is that Laravel processes these
orderBy
clauses sequentially. Each subsequent
orderBy
method is applied to the results that were
tied
by the previous
orderBy
method. This allows for incredibly fine-grained control over how your data is presented, letting you build complex sorting logic that truly caters to the specific needs of your application and its users. It’s a testament to Laravel’s flexibility in handling diverse data presentation requirements, letting you combine ordering strategies with elegant and readable code.
Ordering with Relationships
Now, here’s a scenario that often comes up: sorting a collection of models based on an attribute of a
related model
. This can get a little tricky, guys, but Laravel provides elegant solutions. For example, imagine you have
Order
models, and each
Order
belongsTo
a
Customer
. You want to fetch all orders but sort them by the
customer’s name
in descending order. Directly calling
orderByDesc('customer.name')
won’t work out of the box because
customer.name
isn’t a column on the
orders
table. You need to involve a
join
operation to access the related table’s columns.
Here’s how you’d typically handle this using the Query Builder with a
join
:
use App\Models\Order;
$ordersSortedByCustomerName = Order::select('orders.*')
->join('customers', 'orders.customer_id', '=', 'customers.id')
->orderByDesc('customers.name')
->get();
In this code snippet, we first select
orders.*
to avoid any column name conflicts (especially if both
orders
and
customers
tables have a
name
column, for instance). Then, we use a
join
clause to link the
orders
table with the
customers
table based on their foreign and primary keys (
orders.customer_id
and
customers.id
).
After
the join, the
customers.name
column becomes accessible to our query, allowing us to use
orderByDesc('customers.name')
. This approach is generally the most performant for database-level sorting across relationships, as the sorting happens directly within the database before the results are hydrated into Eloquent models. It avoids the N+1 problem that can arise if you were to fetch all orders first, then iterate and load each customer, and
then
sort the collection in PHP. For cases where you need to sort by an aggregate of a related model (e.g., sorting users by their
total number of posts
), you might need more complex joins and
GROUP BY
clauses, potentially combined with
withCount
or
withSum
and then an
orderBy
on the computed counts/sums. For example, to get users with the most posts first:
use App\Models\User;
$usersByPostCount = User::withCount('posts')
->orderByDesc('posts_count')
->get();
This
withCount
approach is incredibly elegant and efficient for sorting by relationship aggregates. It adds a
posts_count
column to each
User
model, which you can then sort by. Remember, when dealing with relationships and sorting, always consider the database performance.
join
operations are usually preferred for sorting on related columns from large datasets, while
withCount
(and similar
with
methods) offer a convenient Eloquent way to sort by aggregates. Choosing the right method depends on the specific scenario and the scale of your data, but knowing these options gives you powerful tools to manage your data relationships effectively in Laravel 8.
Performance Considerations
Alright, let’s talk about something super important, guys:
performance considerations
when using
orderByDesc
in Laravel 8, especially with large datasets. While
orderByDesc
is a fantastic tool, it’s crucial to use it wisely to avoid performance bottlenecks that can slow down your application. The database sorting operation can be one of the most resource-intensive parts of a query, particularly if not optimized. The biggest factor here is
database indexing
. If you frequently sort by a particular column, whether in ascending or descending order, that column is a prime candidate for a database index. An index acts like a pre-sorted lookup table for your database, allowing it to find and sort records much faster than having to scan the entire table every single time. Without an index on your
orderByDesc
column, your database will likely perform a full table scan, which means it has to read every single row in the table, sort them, and
then
return the results. On a table with millions of rows, this can take seconds, not milliseconds, leading to a sluggish user experience. For example, if you’re constantly sorting blog posts by
created_at
in descending order, ensure that
created_at
has an index.
To add an index in a Laravel migration, you’d typically do this:
Schema::table('posts', function (Blueprint $table) {
$table->index('created_at');
});
Or, if it’s a unique field or primary key, it’s usually indexed by default. Another performance tip is to
limit your results
when possible. Using
limit()
or
take()
alongside
orderByDesc
can significantly improve performance, especially when combined with
offset()
for pagination. For instance,
Post::orderByDesc('created_at')->limit(10)->get();
will be much faster than fetching thousands of posts and then only using the first ten. Moreover, be cautious with
sorting on computed values or complex raw expressions
without indexes. If you’re using
orderByRaw
with a function or a complex
CASE
statement, the database might not be able to use an index effectively, leading to slower queries. In such cases, consider if you can pre-calculate and store the sortable value in a separate, indexed column, or perhaps create a generated column (if your database supports it) that can be indexed. Finally, always
profile your queries
. Laravel Debugbar is an excellent tool for development that can show you the queries being run and their execution times. For production, tools like database-specific monitoring or
EXPLAIN
statements (which show the query execution plan) are invaluable for identifying and optimizing slow queries. By proactively thinking about indexing, limiting results, and monitoring query performance, you can ensure that your
orderByDesc
operations, even on very large datasets, remain lightning-fast and keep your Laravel 8 application running smoothly for all your users. It’s all about working
with
your database efficiently, not against it, to deliver an optimal experience.
Real-World Examples and Use Cases for
orderByDesc
Let’s wrap this up with some practical, real-world examples, guys, showing where
orderByDesc
in Laravel 8 truly shines. Seeing these use cases in action helps solidify your understanding and gives you ideas for your own projects. Remember, the goal is always to present data in the most logical and user-friendly way possible, and descending order is often the key to achieving that for dynamic content. These examples illustrate just how versatile and indispensable
orderByDesc
is in everyday application development, covering common scenarios you’ll undoubtedly encounter.
Blog Posts: Displaying the Latest First
This is perhaps the most classic use case. For any blog, news site, or content feed, users expect to see the newest content at the top.
orderByDesc('created_at')
or
orderByDesc('published_at')
is your best friend here.
use App\Models\Post;
// Fetch the 10 most recent blog posts
$recentPosts = Post::published()
->orderByDesc('published_at')
->limit(10)
->get();
// 'published()' would be a scope on your Post model to filter for published posts.
This ensures that your audience always sees the freshest content first, making your site feel dynamic and up-to-date. This simple yet powerful query structure forms the backbone of almost all content-heavy websites, guaranteeing that user engagement starts with the most relevant information.
E-commerce: Sorting Products by Price (High to Low)
Customers often want to find the most expensive items first, or perhaps the highest-rated ones. Sorting by
price
or
rating
in descending order is perfect for this.
use App\Models\Product;
// Get products in a specific category, ordered from most expensive to least
$premiumGadgets = Product::where('category_id', 5)
->orderByDesc('price')
->get();
// Or, sort by average rating (assuming a 'rating' column or a computed one)
$topRatedProducts = Product::orderByDesc('average_rating')
->limit(20)
->get();
This functionality allows users to quickly filter and discover products that match their preferences, whether they’re looking for luxury items or the highest-quality goods based on peer reviews. It directly impacts user satisfaction and conversion rates in online stores.
User Activity Feeds: Newest Actions First
For social media platforms, forums, or internal dashboards, displaying user activities, notifications, or forum posts with the latest actions at the top is crucial for relevance.
use App\Models\ActivityLog;
// Show the 50 most recent user activities
$activityFeed = ActivityLog::where('user_id', auth()->id())
->orderByDesc('created_at')
->limit(50)
->get();
By showing the most recent actions first, users can easily catch up on what’s new and relevant to them, whether it’s a new comment on their post, a friend’s update, or a system notification. This keeps the user engaged and informed, making the application feel responsive and alive.
Leaderboards/Rankings: Highest Scores at the Top
In gaming applications or competitive environments, leaderboards are essential. Displaying the highest scores, longest streaks, or most points in descending order is fundamental.
use App\Models\PlayerScore;
// Get the top 10 players by their highest score
$leaderboard = PlayerScore::orderByDesc('score')
->limit(10)
->get();
This provides clear and immediate recognition for top performers, fostering competition and engagement within the user base. It’s a direct way to showcase achievements and motivate users. These examples highlight that
orderByDesc
isn’t just a technical detail; it’s a critical component in shaping the user experience. By intelligently applying descending order, you can make your Laravel 8 applications more intuitive, relevant, and engaging for your users, no matter the context.
Wrapping It Up: Your Journey with
orderByDesc
in Laravel 8
So, there you have it, guys! We’ve taken a pretty comprehensive tour through the ins and outs of
orderByDesc
in Laravel 8
. From understanding its basic function as a shorthand for
orderBy('column', 'desc')
to exploring its powerful capabilities with Eloquent models and the Query Builder, you’re now equipped with the knowledge to sort your data effectively. We talked about how crucial it is to use
orderByDesc
for everything from displaying the
latest blog posts
to showcasing the
most expensive products
or the
newest user registrations
, making your data presentation intuitive and engaging for your users. We also dove into more advanced scenarios, such as chaining multiple
orderBy
clauses to achieve intricate sorting hierarchies (like sorting by category then by price descending), and how to leverage
join
operations or
withCount
for ordering based on related model attributes. Remember, knowing when to combine
orderBy
and
orderByDesc
or when to use
orderByRaw
for truly custom sorting logic gives you unparalleled control over your data. But it’s not just about getting the right order; it’s also about doing it
efficiently
. We emphasized the critical role of
database indexing
in ensuring that your
orderByDesc
queries perform optimally, especially with large datasets, and touched upon other best practices to avoid common pitfalls like N+1 issues. By applying these principles, you’re not just writing code; you’re crafting robust, performant, and user-friendly applications that truly stand out. Mastering
orderByDesc
and its related sorting techniques is an essential skill for any Laravel developer, empowering you to present information in a way that truly makes sense to your audience. Keep practicing, keep experimenting, and keep building amazing things with Laravel 8. You’ve got this!