можно пару слов про переменные $casts и $fillable
$casts - позволяет выполнять какие-то манипуляции при обращении к свойствам модели. Т.е. допустим в БД хранится метка времени, а тебе надо выводить её в нужном формате, можно сделать это с помощью кастов. Или допустим ты хочешь записать в столбец в БД обычный массив, ставишь каст array и дальше при сохранении модели просто передаешь массив и оно само при записи преобразует его в json и обратно в массив когда будешь читать значение из колонки.
$fillable - используется для полей, которые можно заполнять с помощью методов Model::create() и update(). Допустим ты в эти методы передаешь массив с кучей полей. Часть этих полей есть в БД, а части нет т.к. они просто пришли из формы или ещё откуда нить. В этом случае при создании/изменении записи в БД все поля, которых нет в $fillable будут игнорироваться.
С точки зрения "быстро слепить что-то" это может быть удобно, но по-хорошему конечно лучше передавать в методы только те поля, которые могут в них быть) Так что лучше этой штукой не увлекаться)