Где в Laravel лучше делать валидацию входящих данных — в контроллере или сделать кастомный Request для контроллера, или Middleware?
Вообще-то в Ларе УЖЕ есть этот самый отдельный сервис - Illuminate\Http\Request, который и предназначен для валидации входящих данных.
Ну тут по ситуации. Если просто какой-то один абстрактный урл с небольшим количеством входных данных, то прямо в контроллере вполне ок. В Middleware можно пихнуть, если например у тебя несколько роутов с одинаковым набором параметров и валидацией для них.