Laravel Model Scaffold Skill
Use this skill to create or modify Eloquent Models.
Rules
- Structure
-
Strict Types: Always declare(strict_types=1); .
-
Final: Models should be final unless they are explicitly designed for inheritance.
-
Fillable: Prefer $fillable over $guarded for explicit security.
- Modern Casting (Laravel 12)
-
Use the casts(): array method (Laravel 11+), NOT the $casts property.
-
Use Enums for status columns and native types.
protected function casts(): array { return [ 'status' => TicketStatus::class, 'published_at' => 'datetime', 'is_active' => 'boolean', 'options' => 'array', ]; }
- Relationships
-
Always add return types to relationship methods (BelongsTo , HasMany , etc.).
-
Import the relation classes (Illuminate\Database\Eloquent\Relations\BelongsTo ).
public function user(): BelongsTo { return $this->belongsTo(User::class); }
- Scopes
- Use Builder type hint for scopes.
public function scopeActive(Builder $query): void { $query->where('is_active', true); }