да.
1. это код стайл. почитать надо PSR
2. есть группа admin, ей надо дать as, что бы твои роуты были именованы уникально внутри этой группы: admin.dashboard, admin.pages
3. static function () - это я уже доколупываюсь, но почему бы и нет
4. match() не рекомендуется юзать, лучше писать отдельный роут под get, отдельный под post. и да, как выше пиcали, почитать про Route::resource()
5. имена (as) общепринято называть строчными с разделителем "точка"
6. имхо,
Route::get('/add', 'ServiceController@add')->name('service.add')
читается проще, чем юзать массив с as и uses
7. на счет распределения по контроллерам - как писали выше, пока спорно, но походу надо разложить по принципу Route::resource()