authorize('viewAny', Tenant::class); $user = request()->user(); $query = Tenant::query()->orderBy('name'); if (! ($user->is_platform_admin && $user->can('tenant.access-any'))) { $query->whereKey($user->tenant_id); } return TenantResource::collection($query->paginate()); } public function store(StoreTenantRequest $request): JsonResponse { $tenant = Tenant::create($request->validated()); return response()->json(['success' => true, 'message' => 'Tenant created successfully', 'data' => new TenantResource($tenant)], 201); } public function show(Tenant $tenant): JsonResponse { $this->authorize('view', $tenant); return response()->json(['success' => true, 'message' => 'Tenant retrieved successfully', 'data' => new TenantResource($tenant)]); } public function update(UpdateTenantRequest $request, Tenant $tenant): JsonResponse { $this->authorize('update', $tenant); $tenant->update($request->validated()); return response()->json(['success' => true, 'message' => 'Tenant updated successfully', 'data' => new TenantResource($tenant)]); } public function destroy(Tenant $tenant): JsonResponse { $this->authorize('delete', $tenant); $tenant->delete(); return response()->json(['success' => true, 'message' => 'Tenant deleted successfully', 'data' => null]); } }