Сервис не должен знать как создать другой сервис.
Мы сейчас привязались я так понял к Ларавелю. Например та же библиотека (/пакет, не важно) что он исопльзует, не только под Лару сделана. И никто не может гарантировать что в конструктор основного класса будут приходить валидные данные.
Это можно решить: указав строгий тип string, тогда null или другое не передадим.
Но тут мы можем получить пустую строку, что тоже скорей всего нас не устраивает, но скорей всего как и при просто при неправильном ключе сервис к которому мы обращаемся выдаст 401 ошибку.
Вот тут и можно сделать “валидацию”, если мы уже говорим делать ее, и где делать. Потому что в СервисеПровайдере у себя мы сделаем, но если кто-то решит переиспользовать наш “Сервис”, то может уже пропихнуть там и невалидные данные.