Maybe something like this
$bookings = Booking::select('id', 'name', 'reservation_begin', 'reservation_end')
->where(function ($query) use ($startDate, $endDate) {
$query->whereBetween('reservation_begin', [$startDate, $endDate])
->orWhereBetween('reservation_end', [$startDate, $endDate])
->orWhere(function($query) use ($startDate, $endDate) {
$query->whereDate('reservation_begin', '<=', $startDate)
->whereDate('reservation_end', '>=', $endDate);
});
})->get();