Попробуйте:
$results=DB::table('receipts')
->select('receipts.*','dealer_m1.DealerName as ToDealer','dealer_m2.DealerName as FromDealer','product_m.ProductName')
->join('dealer_m as dealer1','receipts.ToDealerID','dealer_m.DealerID')
->join('dealer_m as dealer2','receipts.FromDealerID','dealer_m.DealerID')
->join('product_m','receipts.ProductID','product_m.ProductID')->get();
Вам просто нужно дать каждому объединенному столу псевдоним
Теперь в вашем клинке:
@foreach ($results as $result)
<tr>
<td>{{$result->Id}}</td>
<td>{{$result->FromDealerId}}</td>
<td>{{$result->ToDealerId}}</td>
<td>{{$result->ProductId}}</td>
<td>{{$result->FromDealer}}</td>
<td>{{$result->ToDealer}}</td>
<td>{{$result->ProductName}}</td>
</tr>
@endforeach
Конечно, если вы когда-нибудь застряли на том, что вызывать в своем блейде, просто распечатайте нашу коллекцию, чтобы найти значения key => или выполните dd ($ results); в контроллере, чтобы осмотреть его, прежде чем он попадет в поле зрения.