# Laravel

- [Tabler Icons Component](https://talltips.novate.co.uk/laravel/tabler-icons-component.md): Simple Laravel 7+ component to display one of the Tabler icon set
- [Password-less Login with Laravel 8+](https://talltips.novate.co.uk/laravel/passwordless-login.md): Create a pass-phrase or 'magic-link' login system for Laravel 8 and Jetstream
- [Password-less Login with Magic Link in Laravel 8](https://talltips.novate.co.uk/laravel/password-less-login-with-magic-link-in-laravel-8.md): Provide users with a secure URL that automatically logs them in
- [Laravel Resources](https://talltips.novate.co.uk/laravel/laravel-resources.md)
- [Laravel Breeze Login Conditional Redirect](https://talltips.novate.co.uk/laravel/laravel-breeze-login-conditional-redirect.md): When you want to redirect a user after login according to their role, and using Laravel Breeze
- [Jetstream Login Conditional Redirect](https://talltips.novate.co.uk/laravel/laravel-8-conditional-login-redirects.md): How to provide different redirects at login when using Laravel Fortify and Jetstream
- [Simplify Laravel CRUD Controllers](https://talltips.novate.co.uk/laravel/simplify-laravel-crud-controllers.md): Reusing the same form for create and update
- [CSRF and expired login forms](https://talltips.novate.co.uk/laravel/csrf-and-expired-login-forms.md): How to handle a page with a login form that will expire
- [CSRF and expired logout forms](https://talltips.novate.co.uk/laravel/csrf-and-expired-logout-forms.md): Prevent users seeing a 419 Page Expired when logging out
- [Add your own logo to Laravel Mail](https://talltips.novate.co.uk/laravel/add-your-own-logo-to-laravel-mail.md): Amending the template is easy to add your logo to the mail header
- [Specify a different mail theme for Notifications](https://talltips.novate.co.uk/laravel/specify-a-different-mail-theme-for-notifications.md): Where to place a custom mail theme in Laravel
- [Show custom page when email verification link expired](https://talltips.novate.co.uk/laravel/show-custom-page-when-email-verification-link-expired.md): Using Laravel 10 with Breeze + Blade starter kit
- [Using a mutator to save currency](https://talltips.novate.co.uk/laravel/using-a-mutator-to-save-currency.md): When user enters Pounds & Pence or Dollars & Cents
- [Using Spatie Valuestore to hold frequently accessed settings](https://talltips.novate.co.uk/laravel/using-spatie-valuestore-to-hold-frequently-accessed-settings.md): Domain specific settings
- [Using the old() helper](https://talltips.novate.co.uk/laravel/using-the-old-helper.md): Populate a form with user's previous entry, or default data
- [Alternatives to using Eloquent Accessor](https://talltips.novate.co.uk/laravel/alternatives-to-using-eloquent-accessor.md): Using computed columns in MySQL
- [UpdateOrCreate may not update timestamp](https://talltips.novate.co.uk/laravel/updateorcreate-may-not-update-timestamp.md): When the record is identical, the updated\_at timestamp is not changed
- [Use of lockForUpdate()](https://talltips.novate.co.uk/laravel/use-of-lockforupdate.md): Locking the database between read and update of a database record
- [Using S3](https://talltips.novate.co.uk/laravel/using-s3.md): Various tips for working with S3 storage from your Laravel application
- [Super Simple User Based Feature Flags](https://talltips.novate.co.uk/laravel/super-simple-user-based-feature-flags.md): Through a simple addition to the user model we can enable application features for specific users only
- [Installing a Specific Version of Laravel](https://talltips.novate.co.uk/laravel/installing-a-specific-version-of-laravel.md): Use Composer to setup a project in an earlier version of Laravel
- [Versioning your Laravel Project](https://talltips.novate.co.uk/laravel/versioning-your-laravel-project.md): Create a string which pulls information from your Git history
- [CSS Cache Busting with your Git Commit SHA](https://talltips.novate.co.uk/laravel/css-cache-busting-with-your-git-commit-sha.md): When not using MIX and its versions
- [Adding column to Database Notifications table](https://talltips.novate.co.uk/laravel/adding-column-to-database-notifications-table.md): When you need additional scope on notifications
- [Find nearby locations using the Haversine formula in Eloquent query](https://talltips.novate.co.uk/laravel/find-nearby-locations-using-the-haversine-formula-in-eloquent-query.md): Uses the haversine formula to find all DB records with a location within a specified radius
- [Using Queues on Shared Hosting with Laravel](https://talltips.novate.co.uk/laravel/using-queues-on-shared-hosting-with-laravel.md): When all you have is CRON
- [Create Guaranteed Unique Invoice Number in Laravel](https://talltips.novate.co.uk/laravel/create-guaranteed-unique-invoice-number-in-laravel.md): Not as simple as it may sound.  How to avoid problems from race conditions.
- [Send Notification to all team members](https://talltips.novate.co.uk/laravel/send-notification-to-all-team-members.md): When one email should be sent using routeNotificationForMail
- [Protect Staging site with Basic Auth](https://talltips.novate.co.uk/laravel/protect-staging-site-with-basic-auth.md): When you don't want public sites crawling
- [Working with Enums](https://talltips.novate.co.uk/laravel/working-with-enums.md): Tips and handy utilities for working with enums in your Laravel project
- [PHP DateTime formatting cribsheet](https://talltips.novate.co.uk/laravel/php-datetime-formatting-cribsheet.md): Describes the placeholders you can use when formatting dates in PHP or with Carbon


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://talltips.novate.co.uk/laravel.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
