Reading those docs posted by NogDog. Some interesting suggestions/requirements for your tables to play nice with Laravel's model classes. Also some interesting deviations from these suggestions/requirements
"Eloquent" (the name of this makes me want to gag) assumes a table name which is derived from the class name. Quoth the docs:
Note that we did not tell Eloquent which table to use for our Flight model. By convention, the "snake case", plural name of the class will be used as the table name unless another name is explicitly specified. So, in this case, Eloquent will assume the Flight model stores records in the flights table.
How the snake case equivalent of Flight gets pluralized is not explained.
* Eloquent will also assume that each table has a primary key column named id. In addition, Eloquent assumes that the primary key is an incrementing integer value, which means that by default the primary key will be cast to an int automatically. This is not the case for the cache or session tables defined when you run php artisan session:table or php artisan cache:table. The default sessions table has an id of type varchar which is unique, but not primary. The default cache table has no id column at all.
* By default, Eloquent expects created_at and updated_at columns to exist on your tables.
One can override these default requirements with specific variable definitions in one's model classes.