Вы придумали проблему там где её нет, потому что объединили две несвязанные задачи.
Добавление и прочие изменения можно подсмотреть в миграциях, есть готовый компонент \Illuminate\Database\Schema\Builder
После этого поле ничем не отличается от остальных. Это не Doctrine, где поля надо явно прописывать.
Вторая задача это работа админки, она никак не связана с путём появления поля в модели. Та же простейшая динамическая сортировка или фильтрация делается в лоб.
Допустим в урле приходит
?filterBy=fieldName&filterValue=value&filteOperation=%3D
в контроллере
$model->where($request->get('filterBy'), urldecode($request->get('filterOperation')), $request->get('filterValue'));
И не важно как вы добавили колонку и есть ли она вообще в базе, Eloquent не проверяет этого.
Но не забывайте про безопасность.