active || ! $asset->requestable || $asset->assigned_id !== null) { return false; } $hasReservationConflict = $asset->reservationItems() ->whereIn('status', ReservationItemStatus::blockingValues()) ->where('starts_at', '<', $endsAt) ->where('ends_at', '>', $startsAt) ->exists(); if ($hasReservationConflict) { return false; } return ! $asset->blocks() ->where('starts_at', '<', $endsAt) ->where('ends_at', '>', $startsAt) ->exists(); } }