expect('Infra') ->not->toUse('App'); arch('Infra Eloquent Database Models extend Eloquent Model') ->expect('Infra\Database\Models') ->toExtend(Model::class); arch('Infra Eloquent Database Models are final') ->expect('Infra\Database\Models') ->toBeFinal(); arch('Infra adapters implement Domain Ports') ->expect('Infra\Adapters\Directories\EloquentEmployeeDirectory') ->toImplement('Domain\Ports\Directories\EmployeeDirectory'); arch('Infra EloquentEmployeeRepository implements Domain EmployeeRepository port') ->expect('Infra\Adapters\Repositories\EloquentEmployeeRepository') ->toImplement('Domain\Ports\Repositories\EmployeeRepository'); arch('Infra layer uses strict types') ->expect('Infra') ->toUseStrictTypes(); });