Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Power Enum Laravel Package

azimkordpour/power-enum

Power Enum enhances native PHP enums for Laravel with convenient helpers for labels, validation rules, Eloquent casts, and value comparisons, making status and type fields safer, more consistent, and easier to use across your application.

View on GitHub
Deep Wiki
Context7

Power Enum extends native PHP enums with the helpers Laravel developers usually end up writing by hand. It keeps enum definitions clean while adding label and description metadata, validation, and Eloquent-friendly casting, so one enum can act as the source of truth for forms, APIs, and database columns.

  • Case metadata — attach labels, descriptions, and custom attributes directly to cases
  • Validation rules for enum-backed request input
  • Eloquent casting and convenient query scopes
  • Helper methods to list cases, values, and select options
  • Zero configuration with a lightweight, native-feeling API
Frequently asked questions about Power Enum
How do I install azimkordpour/power-enum in a Laravel application?
Install it with Composer using composer require azimkordpour/power-enum. There is no service provider to register, no config file to publish, and no migration to run, because the package is a plain trait rather than a Laravel package with container bindings. After installing, add the trait's use statement to each enum where you want the helper methods available.
Which PHP and Laravel versions does PowerEnum support?
PowerEnum targets native PHP enums, so it requires PHP 8.1 or higher as a baseline. The trait itself is framework-agnostic and is reported to work with Laravel 9 through 12, but you should confirm the exact constraint declared in the package's composer.json before adopting it. Pin a caret constraint such as ^1.0 and commit your composer.lock so a young package cannot shift under you.
How do I add human-readable labels and descriptions to a PHP enum with PowerEnum?
Add the package trait to your backed enum and the trait supplies the label and description helpers for each case. This lets you replace the hand-rolled match expressions and constant arrays that teams typically write for status, role, or category enums. Because the methods live on the enum itself, you can call them anywhere the enum is passed around, including Blade views and API resources.
Can PowerEnum enums be used directly as Eloquent casts?
Yes. PowerEnum is built around native backed enums, which Laravel already supports as Eloquent attribute casts, and the package adds Laravel-oriented helpers on top of that. You still declare the enum in your model's $casts array exactly as you would with any backed enum. The trait does not change how values are persisted, so your database column types stay the same.
Does PowerEnum provide validation rules for enum values?
The package advertises validation rules as one of its features, so you can validate incoming request data against the enum's cases without writing a custom rule by hand. This is useful for form requests and API endpoints that accept a status or type string. Check the source for the exact rule class or method name and whether it integrates with Laravel's Rule::enum helper.
How does route binding work with PowerEnum enums?
PowerEnum lists route binding among its Laravel integrations, letting an enum case resolve from a route segment so controllers receive a typed enum instead of a raw string. This removes manual validation and lookup code from your controller methods. Confirm the resolution behavior, particularly whether it matches on the case value or the case name, before relying on it in public URLs.
Will the PowerEnum trait conflict with methods already defined on my enum?
Yes, if your enum already defines a method with the same name as one the trait provides, PHP raises a fatal error rather than a warning. Before adopting, grep your enum directory for candidate method names like label, values, options, and description, and rename or remove the local versions. This audit is the real cost of adoption, not the Composer install.
Can I use PowerEnum outside of Laravel in plain PHP projects?
The core of the package is a trait over native PHP 8.1 enums, so the value, label, and option helpers are usable in any PHP codebase without Laravel. Only the framework-specific pieces, such as Eloquent casts and route binding, depend on Illuminate components. That makes it reasonable to adopt inside a domain layer that must stay framework-agnostic.
How does PowerEnum compare to archtechx/enums or BenSampO/laravel-enum?
The main difference is coupling. PowerEnum is a single opt-in trait with no base class and no service provider, whereas the older packages are larger and more opinionated about how your enum is structured. archtechx/enums and BenSampO/laravel-enum have far larger user bases and longer track records, so choose them if you want broad community validation or need features PowerEnum does not expose.
Is PowerEnum safe to use in production and is it actively maintained?
It is a young, single-maintainer package with a 2025 initial release and no known dependents, so treat it as a convenience helper rather than load-bearing infrastructure. Keep business logic limited to simple value and name mapping so you can drop the trait without a rewrite, and pin the version in composer.lock. The MIT license also lets you vendor or fork the code if maintenance stalls, which is a reasonable mitigation for a package this small.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
cgv/localized-resource