props()->latest()->get() )->response(); } public function store(StoreTenantPropRequest $request): JsonResponse { /** @var Prop $prop */ $prop = Tenant::createProp($request->validated()); return PropResource::make($prop)->response()->setStatusCode(201); } public function show(Prop $tenantProp): PropResource { return PropResource::make($this->resolveScopedProp($tenantProp)); } public function update(UpdateTenantPropRequest $request, Prop $tenantProp): PropResource { $tenantProp = $this->resolveScopedProp($tenantProp); $tenantProp->update($request->validated()); return PropResource::make($tenantProp); } public function destroy(Prop $tenantProp): Response { $tenantProp = $this->resolveScopedProp($tenantProp); $tenantProp->delete(); return response()->noContent(); } protected function resolveScopedProp(Prop $prop): Prop { if ($prop->propable_type !== Tenant::class) { throw new NotFoundHttpException('Tenant prop not found.'); } return $prop; } }