expect(['Application', 'Domain', 'Shared']) ->classes() ->extending(\Throwable::class) ->toHaveSuffix('Exception'); arch('port repository interfaces have Repository suffix') ->expect('Domain\\Ports\\Repositories') ->interfaces() ->toHaveSuffix('Repository'); arch('use case inputs are named Input') ->expect('Application\\UseCases') ->classes() ->implementing(Input::class) ->toHaveSuffix('Input'); });