spatie/laravel-enum
Laravel integration for spatie/enum: use Enum base class in Laravel, cast model attributes to enums (including nullable and arrays), and get Laravel-friendly behavior via custom casts and Castable support for Eloquent.
OrderStatus::PENDING, UserRole::ADMIN). Reduces magic strings and improves IDE support (autocompletion, refactoring).PaymentStatus, SubscriptionTier) with validation.HTTPStatus::SUCCESS) and request validation.enum('active', 'suspended')).OrderStatus::CANCELLED->label()).'active', 'pending') across models/controllers.UserRole values early).spatie/enum directly).For Executives:
"This package lets us replace error-prone string constants with type-safe enums—like OrderStatus::SHIPPED—across our Laravel app. It cuts bugs in validation logic, speeds up development with IDE autocompletion, and future-proofs our codebase for PHP 8.1+. Spatie’s MIT-licensed solution is used by 300+ teams, with minimal maintenance overhead. For a one-time composer require, we gain consistency, scalability, and developer happiness—critical for our [roadmap item X]."
For Engineers:
*"Spatie’s laravel-enum gives us:
User::find(1)->role returns UserRole::ADMIN).->value or labels with ->label().User::create(['role' => 'hacker']) fails fast).enum() constraints.
Example: Replace if ($status === 'pending') with $status->isPending()—self-documenting and refactor-safe. Let’s prototype this for [feature Y] and measure dev velocity gains."*How can I help you explore Laravel packages today?