Роман, дело не в брейкпойнтах, а в автоподстановке, поиске и навигации по коду. А также генерация кода и документации, проверка синтаксиса и инспекция кода, и еще куча всего, что снижает количество ошибок и ускоряет разработку в разы.
Руслан Янборисов, Вбейте в гугле "для чего нужны внешние ключи mysql", внимательно прочтите, а затем идите изучать раздел Relationships по вышеуказанной ссылке.
NikolayAlb, UserServiceContract должен быть интерфейсом. На вызов этого контракта (интерфейса) из сервис-контейнера вы биндите конкретную реализацию UserService.
Логика такова, что вам не интересны детали работы сервиса, но вы точно знаете, что принимает, и что возвращает реализуемый интерфейс. Таким образом вы всегда сможете перебиндить этот же интерфейс на другую реализацию.
Если нужно вынести какую-то общую часть всех классов в абстрактный класс, то назовите его AbstractUserService.
NikolayAlb, например, в \App\Services\User\UpdateImageService или \App\Services\UserService. Можно зарегистрировать его в сервис-контейнер, передать зависимости, и в контроллере вызывать через сервис-контейнер.
Антон Антон, Значит нужно добавить новый экшн в контроллер и навсегда перестать пытаться объединить в одном экшне несколько велосипедов. А общий код вынести в сервис или еще куда.
Группы нужны, чтобы сгруппировать роуты с одинаковыми префиксами/неймспейсами/миддлварями вместе. Отсюда вопрос: зачем пытаться сгруппировать негруппируемое?
Прежде чем искать по документации, нужно хотя бы один раз ее прочитать. Пусть даже бегло. Тогда будешь иметь представление, о том, что в ней есть, и что умеет laravel. А ответ на этот вопрос , сюрприз-сюрприз, тоже был в документации.
А если потрудиться и разобраться с отношениями, то можно посты из вотчлиста получать прямо из модели юзера.
Дмитрий Лахно, ну это зависит от того, какие заголовки передает сервер. С точки зрения скачивания файла с помощью php - вообще пофиг. Разве что может понадобиться разрешить редиректы, если используется curl.