Прежде всего, вы делаете это совершенно неправильно. Когда вы используете:
foreach($data as $d){
$return = $d::with('detalles')->with('areas')->get();
}
Вы переопределяете результат в цикле снова и снова.
Код контроллера должен выглядеть примерно так:
public function findHospitalSearch(Request $request)
{
$hospitals = Hospitales::where('estado', $request->estado)
->with('detalles', 'areas')->get();
return view('sistema.findHospitalResult', compact('hospitals'));
}
Теперь, на ваш взгляд, вы можете использовать что-то вроде этого:
@foreach ($hospitals as $hospital)
{{ $hospital->nombre }}<br />
{{ $hospital->detalles->sitioWeb }}<br />
@foreach ($hospital->areas as $area}
{{ $area->area }}<br />
@endforeach
@endforeach