whereIn('type', ['contact', 'motion']) ->with(['device.room', 'device.entities.state', 'state']) ->get() ->sortBy(fn ($e) => ($e->device->room?->name ?? 'zzz').$e->device->name) ->values(); $open = $sensors->filter(fn ($e) => $e->type === 'contact' && data_get($e->state, 'state.open') === true)->count(); return view('livewire.windows', [ 'groups' => $sensors->groupBy(fn ($e) => $e->device->room?->name ?? __('devices.no_room')), 'open' => $open, 'total' => $sensors->count(), ]); } }