Не скажу за конкретно этот класс, с laravel не работал, но вообще а этом есть смысл.
Абстрактный класс вынуждает нас создавать его дочерние классы, но ещё и содержит какой-то обобщенный код. Сам по себе абстрактный класс как экземпляр бесполезен, т.к. не содержит конкретного кода.
Так вот, когда мы хотим из обобщённого кода вызвать какой-то конкретный код, мы объявляем абстрактный метод.
Но! Когда логика алгоритма подразумевает вызов обобщённого кода из конкретного, абстрактный метод не нужен. Более того, мы заранее не можем сказать какой метод(ы) будет создан. Получается абстрактный класс, с protected методами, который не содержит абстрактных методов.
Делать такой класс не абстрактным, а его методы публичными не вариант, т.к. это провоцирует нарушение инкапсуляции.