Senior scaffolding skill. Handles SQL vs Mongo (Jenssegers/Official), SoftDeletes, and strict API standards.
CRITICAL: Before generating code, read composer.json to detect the database driver.
Illuminate\Database\Eloquent\Modelmongodb/laravel-mongodb)
MongoDB\Laravel\Eloquent\Model$connection = 'mongodb';jenssegers/mongodb)
Jenssegers\Mongodb\Eloquent\Model$connection = 'mongodb';Command: php artisan make:model <Name> (Do not use -m for Mongo unless specifically asked).
Model Rules (app/Models/<Name>.php):
declare(strict_types=1);use Illuminate\Database\Eloquent\SoftDeletes;use MongoDB\Laravel\Eloquent\SoftDeletes;use Jenssegers\Mongodb\Eloquent\SoftDeletes;protected $dates = ['deleted_at']; for legacy support.$table->softDeletes().php artisan make:migration create_indexes_for_users).slug, email, and foreign keys.Command: php artisan make:controller <Name>Controller
Command: php artisan make:resource <Name>Resource
Command: php artisan make:test <Name>Test (MANDATORY)
Strict Guidelines:
new <Name>Resource($model).request()->all(). Use FormRequest validation only./users/{user}/posts/{post}).App\Services\<Name>Service or App\Actions\Create<Name>).Mongo Specific:
->join() (it doesn’t exist). Use ->with() or embedding.where('field', 'like', ...) carefully; prefer regex or text search if high volume.Hybrid Relationships (The “Unicorn”):
hasMany Mongo Logs.hasMany throws driver errors.php artisan make:observer <Name>Observer).