authorize('viewAny', Zone::class); return ZoneResource::collection(Zone::withCount('devices')->orderBy('name')->get()); } public function store(ZoneRequest $request) { $zone = $request->user()->zones()->create($request->validated()); return (new ZoneResource($zone))->response()->setStatusCode(201); } public function update(ZoneRequest $request, Zone $zone) { $zone->update($request->validated()); return new ZoneResource($zone); } public function destroy(Zone $zone) { $this->authorize('delete', $zone); $zone->delete(); return response()->noContent(); } }