You know make:model exists. You know there are flags that generate a migration, a controller, a factory, and a seeder all at once. You just cannot remember the exact combination without opening a browser tab.
This is one of those small frictions that adds up. You stop mid-flow, Google "laravel make model with migration and controller," scan the docs, paste the command, and get back to work. Two minutes gone. Flow broken. Multiply that by ten commands a day and it is a real cost.
In 2026, that friction is unnecessary. Here is every Artisan command worth knowing, what the flags actually do, and how AI can now generate the right command sequence for you automatically based on what you are building.
Why Artisan flags are so easy to forget
The problem is not intelligence. The problem is surface area.
Laravel's Artisan CLI has over 100 built-in commands, and many of them have flags that interact with each other in ways that are not obvious until you have used them enough times to memorize them. A junior or mid-level developer who switches between projects, frameworks, and contexts does not always have that repetition.
make:model Post generates a model. make:model Post -m generates a model and a migration. make:model Post -mc generates a model, migration, and controller. make:model Post -mcrf generates a model, migration, controller, resource, and factory. make:model Post --all generates all of the above plus a seeder and a policy.
None of that is hard to understand once you see it. It is just hard to hold in memory when you are focused on the feature you are building, not the commands that scaffold it.
Artisan commands developers Google most often
These are the commands with flag combinations that cause the most tab-switching.
make:model
The most used Artisan command and the one with the most useful flag combinations.
Model only php artisan make:model Post
Model + migration php artisan make:model Post -m
Model + migration + controller php artisan make:model Post -mc
Model + migration + resource controller php artisan make:model Post -mcr
Model + migration + API controller (no create/edit methods) php artisan make:model Post --migration --controller --api
Model + migration + controller + factory + seeder php artisan make:model Post -mcfs
Everything at once php artisan make:model Post --all
The --all flag is the one most developers do not know about until someone tells them. It generates the model, migration, factory, seeder, policy, resource controller, and resource class in one command.
make:controller
Basic controller php artisan make:controller PostController
Resource controller (index, create, store, show, edit, update, destroy) php artisan make:controller PostController --resource
API resource controller (no create or edit — no form views needed) php artisan make:controller PostController --api
Invokable controller (single-action, uses __invoke) php artisan make:controller PostController --invokable
Resource controller bound to a model (type-hints the model automatically) php artisan make:controller PostController --resource --model=Post
The --invokable flag is the one people reach for on single-action routes and then forget the exact flag name. The --model flag on a resource controller is even more overlooked and saves meaningful boilerplate.
make:migration
Create a new table php artisan make:migration create_posts_table
Add a column to an existing table php artisan make:migration add_published_at_to_posts_table
Modify an existing table php artisan make:migration modify_posts_table
Specify the table explicitly php artisan make:migration create_posts_table --create=posts
Modify with explicit table php artisan make:migration add_status_to_posts --table=posts
Laravel infers intent from the migration name when you follow the naming convention, which is why create_posts_table generates a migration with a create schema call and add_column_to_table generates one with an alter call.
make:request
Form request for validation php artisan make:request StorePostRequest php artisan make:request UpdatePostRequest
No flags here, but developers often forget that the convention is StoreModelRequest and UpdateModelRequest to keep naming predictable across a team.
make:policy
Policy without a model php artisan make:policy PostPolicy
Policy with model methods pre-generated (viewAny, view, create, update, delete, restore, forceDelete) php artisan make:policy PostPolicy --model=Post
The --model flag generates all the policy methods with the correct model type-hint already in place. Without it, you get an empty class. Most developers want the pre-generated methods and forget to add the flag.
make:resource
API resource (single model) php artisan make:resource PostResource
Resource collection php artisan make:resource PostCollection --collection
make:job
Synchronous job php artisan make:job ProcessPost
Job forced to be synchronous (does not implement ShouldQueue) php artisan make:job ProcessPost --sync
make:event and make:listener
php artisan make:event PostPublished php artisan make:listener SendPublicationNotification --event=PostPublished
The --event flag wires the listener to the event automatically. Without it, you add the event type-hint manually.
make:mail
php artisan make:mail PostPublished php artisan make:mail PostPublished --markdown=emails.post-published
The --markdown flag generates a mailable class with a markdown view already configured. Without it, you get the class and have to set up the view reference yourself.
make:notification
php artisan make:notification PostApproved php artisan make:notification PostApproved --markdown=notifications.post-approved
make:test
Feature test (default, goes in tests/Feature) php artisan make:test PostTest
Unit test (goes in tests/Unit) php artisan make:test PostTest --unit
Pest test php artisan make:test PostTest --pest
Pest unit test php artisan make:test PostTest --pest --unit
make:middleware
php artisan make:middleware EnsurePostIsPublished
make:command
php artisan make:command PublishScheduledPosts
Ready to Code Smarter with Laravel?
Meet StackMivo — your AI full-stack assistant built for Laravel developers. Skip the boilerplate, build faster, and focus on what matters: problem solving.
Try StackMivo NowFlag combinations most developers always Google
For quick reference, these are the ten combinations that cause the most tab-switching.
Where AI makes this better
Knowing the flags is useful. But even if you bookmark this page, you still have to translate "I want to build a Post feature with a model, migration, resource controller, policy, API resource, and Pest tests" into the right sequence of commands manually.
That translation step is where most of the friction actually lives. It is not that the commands are hard. It is that going from "here is what I am building" to "here is the exact sequence of commands that scaffolds it correctly" requires a mental context-switch that interrupts the real work.
StackMivo handles that translation automatically. Describe what you are building, and it generates the full connected scaffold directly, with all the right pieces wired together from the start. Not a list of commands to run one by one, but a complete, framework-correct stack pushed to your repository in one session.
For junior and mid-level developers in particular, that shift matters beyond the time saved. When a tool generates code that follows correct Laravel conventions from the first generation, the developer reads framework-correct code every day. That is how conventions become instinctive rather than something you have to look up.
Artisan commands for running, not just generating
Beyond make: commands, these are the ones developers look up most often during active development.
Run migrations php artisan migrate
Roll back the last migration batch php artisan migrate:rollback
Roll back and re-run all migrations php artisan migrate:fresh
Roll back, re-run migrations, and seed php artisan migrate:fresh --seed
Run a specific seeder php artisan db:seed --class=PostSeeder
Clear all caches php artisan optimize:clear
Clear config cache only php artisan config:clear
Clear route cache php artisan route:clear
List all routes php artisan route:list
List routes filtered by name php artisan route:list --name=post
Run the development server php artisan serve
Open a Tinker REPL session php artisan tinker
A note on php artisan list and php artisan help
If you are ever unsure about a command, two built-in commands are worth knowing.
php artisan list shows every available command grouped by category.
php artisan help make:model shows the full documentation for a specific command, including every available flag and what it does.
These are always current for your installed Laravel version, which matters when behavior changes between major releases.
Ready to Code Smarter with Laravel?
Meet StackMivo — your AI full-stack assistant built for Laravel developers. Skip the boilerplate, build faster, and focus on what matters: problem solving.
Try StackMivo NowStop Googling, start building
The commands are not the hard part of Laravel development. The features are. Every minute spent looking up flag combinations is a minute not spent on the work that actually requires your thinking.
Bookmark this page for the reference. And when you are ready to stop scaffolding by hand entirely and generate the full connected stack from a single description of what you are building, StackMivo is built exactly for that.