authorize('viewAny', CustomFieldDefinition::class); $definitions = CustomFieldDefinition::orderBy('sort_order')->orderBy('id')->get(); return CustomFieldDefinitionResource::collection($definitions); } public function store( CreateCustomFieldDefinitionRequest $request, CreateCustomFieldDefinitionAction $action ): JsonResponse { $this->authorize('create', CustomFieldDefinition::class); $definition = $action->handle(CustomFieldDefinitionData::fromCreateRequest($request)); return CustomFieldDefinitionResource::make($definition)->response()->setStatusCode(201); } public function update( UpdateCustomFieldDefinitionRequest $request, CustomFieldDefinition $customFieldDefinition, UpdateCustomFieldDefinitionAction $action ): CustomFieldDefinitionResource { $this->authorize('update', $customFieldDefinition); $updated = $action->handle($customFieldDefinition, CustomFieldDefinitionData::fromUpdateRequest($request)); return CustomFieldDefinitionResource::make($updated); } public function destroy(CustomFieldDefinition $customFieldDefinition): JsonResponse { $this->authorize('delete', $customFieldDefinition); $customFieldDefinition->delete(); return response()->json(null, 204); } public function reorder( ReorderCustomFieldDefinitionsRequest $request, ReorderCustomFieldDefinitionsAction $action ): AnonymousResourceCollection { $this->authorize('reorder', CustomFieldDefinition::class); $action->handle($request->validated('ids')); $definitions = CustomFieldDefinition::orderBy('sort_order')->orderBy('id')->get(); return CustomFieldDefinitionResource::collection($definitions); } }