You need to separate the logic for your modules or submodules that are accessible only by permission. Suppose in your example if you want your users to be able to view reports no matter what their roles are, given you want them to be able to view the reports based on the permission alone; you would need to implement the logic as follow:
<h1>Purchases</h1>
<ul>
//first checks the role and then the permission if has it allow if not you know
@if( $user->isAn('role1', 'role2', 'etc'))
@can('view-orders')
<li>
Icon - Orders
</li>
@endcan
@can('view-suppliers')
<li>
Icon - Suppliers
</li>
@endcan
@endif
//here only checks the permission if has the permission allows it.
@can('view-reports')
<li>
Icon - Reports
<ul>
<li>Report 1</li>
<li>Report 2</li>
<li>Report 3</li>
</ul>
</li>
@endcan
</ul>
cheers mate!