Попробуйте
$res = DB::table('table2')->join('table1','table2.id','=','table1.id')->select('table1.name','table2.*')->get();
$result = $res->toArray();
$result = array_reverse($result);
$output = [];
foreach($result as $re)
{
// dd($re);
if(!array_key_exists($re->id,$output))
{
$output[$re->id] = [
'id' => $re->id,
'order' => $re->order,
'name' => $re->name
];
}
}
dd(array_reverse($output));
Вывод будет
[
0 => [
"id" => 1
"name" => "A"
"order" => "Cake"
]
1 => [
"id" => 2
"name" => "B"
"order" => "Coffee"
]
]