1) В модели Record создай метод-отношение recordsForShowing.
2) В контроллере RecordController в методе index() выводи все записи.
3) В контроллере RecordController в методе show() добавь проверку:
public function show(App\Models\Record $record) {
// если пользователь не авторизован или не существует в таблице user_records то выдаем ошибку "недостаточно прав"
abort_if(!auth('web')->check() || $record->recordsForShowing()->where('user_id', auth('web')->id())->count() < 1, 403);
// дальше обычным образом показываешь запись
return view('template_name', compact('record'));
}
Тогда список записей смогут увидеть все пользователи, но вот посмотреть полную запись только выбранные пользователи.