authorizeAbility($request, 'admin.branches.view'); $this->authorizeOwner($request, $branch); $buildings = $branch->buildings()->withCount('receptionDesks')->orderBy('name')->get(); return view('frontdesk.admin.buildings.index', compact('branch', 'buildings')); } public function store(Request $request, Branch $branch): RedirectResponse { $this->authorizeAbility($request, 'admin.branches.manage'); $this->authorizeOwner($request, $branch); $validated = $request->validate([ 'name' => ['required', 'string', 'max:255'], 'floor_count' => ['nullable', 'string', 'max:20'], ]); Building::create([ 'owner_ref' => $this->ownerRef($request), 'branch_id' => $branch->id, ...$validated, ]); return back()->with('success', 'Building added.'); } public function destroy(Request $request, Branch $branch, Building $building): RedirectResponse { $this->authorizeAbility($request, 'admin.branches.manage'); $this->authorizeOwner($request, $building); abort_unless($building->branch_id === $branch->id, 404); $building->delete(); return back()->with('success', 'Building removed.'); } }