When dealing with a model, all()  is a static method.
It creates a new query object, and runs get()  on that object

get()  is not static, but can be called statically because of a magic method in the Model class.

You cannot modify the query when using all() .

Model::all() // will retrieve all models

 

You can select columns to retrieve from the database by passing them as parameters to all()

Model::all('id') // will retrieve all models, but include only the id column

 

Model::all()  and Model::get()  do exactly the same thing. The only difference is that Model::all()  will create a query builder instance and call get() for you. It does this in a static method on the object.

If you call Model::get() , the magic method will create a query builder instance and call get()  on that instance.

Model::all()  will only accept columns as parameters. It is flexible and will accept either an array or a list of them.

Model::get()  will also only accept columns as parameters. However, it is not flexible, so you must provide them in an array.

Model::where('id',1)->get('id')

 

This only works because of the magic method. Just like get() , where()  is not defined in the Model class.

Just remember that you’re dealing with a query builder instance.

Laravel – the difference between all() and get()