PHP 8.3 Enums in Laravel: Casts, Routes &amp; Validation | Mohamed Said       [Skip to content](#main)  [ ![](https://cdn.msaied.com/01KT78WE565VEMM3PSNQAAB0MH.png) Mohamed SaidLaravel Backend Engineer ](https://www.msaied.com/public) - [Home](https://www.msaied.com/public)
- [Projects](https://www.msaied.com/public/projects)
- [Articles](https://www.msaied.com/public/articles)
- [Certificates](https://www.msaied.com/public/certificates)
- [About](https://www.msaied.com/public#about)

           [  Contact](https://www.msaied.com/public#contact) Menu 

Menu
----

Close 

 - [HomeStart here](https://www.msaied.com/public)
- [ProjectsCase studies](https://www.msaied.com/public/projects)
- [ArticlesEngineering notes](https://www.msaied.com/public/articles)
- [CertificatesCredentials](https://www.msaied.com/public/certificates)
- [AboutHow I work](https://www.msaied.com/public#about)
- [ContactGet in touch](https://www.msaied.com/public#contact)

  [Start a conversation](https://www.msaied.com/public#contact) [WhatsApp](https://wa.me/201094619204) [Email](mailto:hello@msaied.com) 

 1. [Home](https://www.msaied.com/public)
2. /
3. [Articles](https://www.msaied.com/public/articles)
4. /
5. Typed PHP 8.3 Enums as Eloquent Casts, Route Parameters, and Validation Rules

 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 parameters, and write reusable validation rules — all with full type safety and zero boilerplate.

 ![](https://cdn.msaied.com/01M22N44A70A5MC2S599JP0MPH.webp) [Mohamed Said](https://www.msaied.com/public#person) Published 26 Sep 2026 · Updated 26 Sep 2026 · 1 min read

ShareCopy linkCopied

 ![Typed PHP 8.3 Enums as Eloquent Casts, Route Parameters, and Validation Rules](https://cdn.msaied.com/706/a9d051bc039469c10d1d4c5fc364e598.png) 

  On this page +1. [Why Enums Deserve More Than a Cast](#why-enums-deserve-more-than-a-cast)
2. [1. The Enum Itself — With Behaviour](#1-the-enum-itself-with-behaviour)
3. [2. Eloquent Cast](#2-eloquent-cast)
4. [Guarding transitions in an Action](#guarding-transitions-in-an-action)
5. [3. Route Model Binding for Enum Segments](#3-route-model-binding-for-enum-segments)
6. [4. Reusable Enum Validation Rule](#4-reusable-enum-validation-rule)
7. [Takeaways](#takeaways)

 Why Enums Deserve More Than a Cast
----------------------------------

Laravel has supported `AsEnum` casting since 9.x, but most codebases stop there. A backed enum can do far more: it can self-validate, resolve from a route segment, and carry domain behaviour. This article wires all three together so the enum becomes the single source of truth for a concept like `OrderStatus`.

---

1. The Enum Itself — With Behaviour
-----------------------------------

```php
