watheqalshowaiter/model-fields
Easily add custom fields to Laravel Eloquent models with watheqalshowaiter/model-fields. A simple trait stores dynamic, validated attributes as JSON, letting you extend models without extra migrations or schema changes.
Architecture fit. watheqalshowaiter/model-fields is a developer-tooling package, not a runtime dependency: it exposes Artisan commands that derive model field definitions (e.g. $fillable) from the application's schema/migrations. That places it alongside ide-helper and similar generators — auto-discovered service provider, no middleware, no request-path footprint. Architecturally it is a clean fit for a Laravel monolith or modular monolith, and a poor fit for teams that hand-maintain fillable arrays as a deliberate review gate.
Integration feasibility. Low. Composer install, optional config publish, run the command, diff the generated output. The 3.2.2 release is a single-line compatibility change ("Support laravel 13"), which is the lowest-risk class of release: a widened illuminate/* constraint with (presumably) no code changes. Integration effort is measured in hours, not sprints.
Technical risk. Concentrated in three areas, none of them severe:
$fillable arrays) survives the package's abandonment.Key questions for the maintainer/PR review.
composer.json, or does it include code changes? Diff it.$fillable from nullable/non-nullable, $guarded, $casts, relationship methods — and is it configurable?--check/dry-run mode suitable for CI enforcement?Stack fit. Any Laravel application on 10.x–13.x with Eloquent models backed by conventional migrations. The package is framework-coupled by design, so it inherits Laravel's support window; teams on older majors should pin to the matching prior minor.
Migration path. Install with --dev. Run the generator against a scratch branch, review the diff, and commit only the accepted output. Do not wire the command into deploy or boot — the package should never be able to mutate models outside a developer's working tree.
Compatibility. The only compatibility fact established by this release is a Laravel 13 constraint. Confirm the resolved Illuminate version and PHP floor before upgrading; verify that any transitive dependency (schema introspection, Doctrine DBAL if present) also permits 13. Because 3.2.2 is a patch bump, it is a safe in-place upgrade from 3.2.1 on existing Laravel versions.
Sequencing.
Maintenance. Near-zero ongoing cost: dev-only dependency, no runtime services, no migrations of its own. The real maintenance burden is reviewing generated diffs and keeping the pinned version current with Laravel majors — a few hours per year.
Support. Community-maintained, single maintainer, no commercial backing or SLA. Acceptable for tooling; unacceptable if the generator ever becomes load-bearing in a pipeline. Budget for the possibility of vendoring or forking.
Scaling. Scales with model count, not traffic. Generation time is linear in tables and irrelevant at any realistic application size. No runtime scaling consideration whatsoever.
Failure modes.
$fillable widens the mass-assignment surface. This is the primary security-relevant risk and the reason output must be code-reviewed, never auto-committed.Ramp-up. Under an hour for a Laravel-fluent engineer: one install, one command, one diff. The learning cost is not in the tool but in establishing the team convention for what belongs in $fillable — that decision should be made and documented before the first run, not discovered through generated output.
Assessment of this release. 3.2.2 is a routine compatibility patch with no breaking changes, deprecations, or new capability. It does not change the recommendation — adopt as a dev-only convenience with reviewed output — but it does extend the package's useful life into Laravel 13 and removes it as an upgrade blocker. The one action item is verification: confirm the change is constraint-only and that CI actually exercises Laravel 13 before treating "supported" as "tested."
How can I help you explore Laravel packages today?