authorize('viewAny', Zone::class); $zones = Zone::withCount('devices')->orderBy('name')->get(); return view('zones.index', compact('zones')); } public function create() { $this->authorize('create', Zone::class); return view('zones.create'); } public function store(ZoneRequest $request) { $request->user()->zones()->create($request->validated()); return redirect()->route('zones.index')->with('status', 'Зона создана.'); } public function edit(Zone $zone) { $this->authorize('update', $zone); return view('zones.edit', compact('zone')); } public function update(ZoneRequest $request, Zone $zone) { $zone->update($request->validated()); return redirect()->route('zones.index')->with('status', 'Зона обновлена.'); } public function destroy(Zone $zone) { $this->authorize('delete', $zone); $zone->delete(); return redirect()->route('zones.index')->with('status', 'Зона удалена.'); } }