Не уверен, как у вас настроены ваши таблицы, но это должно работать для вас (используя поле с именем level
в подписках):
User::with(['subscriptions' => function($query){
$query->orderBy('subscriptions.level');
}])->get();
Это должно упорядочиться в соответствии с уровнемподписка.Затем, в своем блэйд-представлении (предполагая какую-то таблицу или что-то в этом роде), вы можете вызвать имя пользователя и затем уровень подписки на основе отношения:
@foreach($users as $user)
<td>{{ $user->name }}</td>
<td>
@foreach($user->subscriptions as $sub)
{{ $sub->level}}
{{$loop->last? "":" | "}}
@endforeach
</td>
@endforeach
Это один из способов обеспечить несколькоподписки - использование канала между каждым в ячейке таблицы для уровня подписки