Type-safe enums in Laravel:
Define Enum
enum OrderStatus: string
{
case Pending = 'pending';
case Processing = 'processing';
case Completed = 'completed';
case Cancelled = 'cancelled';
}Cast in Model
protected $casts = [
'status' => OrderStatus::class,
];Use in Queries
Order::where('status', OrderStatus::Pending)->get();Validation
'status' => ['required', new Enum(OrderStatus::class)]