なぜDIするのか?

function login (LoginService $service)
{
}

って言うのがあったときに
$serviceになんのインスタンスが入るか明確ですよね?

LaravelだとLoginServiceですよね

多分難しく考えすぎですね

単純に

new LoginService()

はできるけど

new BaseRepositoryInterface();

はできないから

が理由です