Php Laravel, зачем отдавать контракт в контсруктор класса?
Гуглите dependency injection laravel.
Контракт подразумевает, что у него есть один основной релизованный класс. Но так же мы можем и поменять его.
К примеру с БД mysql основной, если он в конфиге прописан. Так же есть и другие драйвера БД работающие по контрактую. Почта, кэш, репозитории и много другого раюотаютт так же