Документацию читаю, но по нескольким строчкам кода из примера непонятно зачем это нужно и где это применять.
Для написания относительно простых сайтов и приложений, оно, наверное и не нужно. Но интересно и хочется понять архитектуру. А заглядывая под капот (через ctrl + клик мышью в ide) к внутренностям Laravel, глаза разбегаются от обилия классов и зависимостей.
Можете объяснить на самом примитивном примере, зачем это нужно и почему это удобно?
Чтобы разобраться в этом одного даже развернутого ответа не хватит. Вам нужно сперва почитать про принцип инверсии зависимостей - один из принципов SOLID. Затем разобраться что из себя представляет паттерн проектирования dependency injection и как к нему вообще пришли (service locator также упоминается). И затем собственно приходим к реализации этого паттерна в laravel. Также на заметку можно взять php di библиотеку - просто другая реализация.