Попытка получить только одно условие, если первая проблема окажется верной.Условие if находится после цикла foreach.Таким образом, цикл проверит, соответствует ли каждый цикл критериям и даст соответствующий ответ.
Я попытался исправить информацию, используя @isset и @ switch.
<!-- Like a quote -->
<div>
<div>
<ul>
@auth
@if($quote->userLike->count() > 0)
@foreach($quote->userLike as $like)
@if($like->pivot->user_id == $id)
<li class="list-inline-item">
<form method="POST" action="{{route('likequote')}" class="likequote">
@csrf
<button class="btn btn-danger shadow-lg" id="savelike"><i class="fas fa-heart"></i>
</li>
@endif
@endforeach
@else
<li class="list-inline-item">
<form method="POST" action="{{route('likequote')}}" class="likequote">
@csrf
<input type="hidden" class="form-control col-md-4" name="likequote" id="likequote" value='{{$quote->id}}'>
<button type="submit" class="btn btn-primary shadow-lg " id="savelike"><i class="fas fa-heart"></button></i>
</form>
</li>
@endif
@endauth
<!-- Audio -->
<li class="list-inline-item">
<source src="{{$quote->mp3_url}}" type="audio/mpeg">
Your browser does not support the audio tag.
</audio>
</li>
</ul>
</div>
</div>
@else