allowedFilters(['id', 'currency_code']) ->allowedIncludes($this->allowedIncludes(self::INCLUDES)) ->allowedSorts(['id', 'created_at', 'updated_at', 'currency_code']) ->simplePaginate(request('per_page', 15)); // Return the orders as a JSON response return OrderResource::collection($orders); } /** * Create a new order */ public function store(CreateOrderRequest $request) { // Validate and create the order $order = Order::create($request->validated()); // Return the created order as a JSON response return new OrderResource($order); } /** * Show a specific order */ public function show(GetOrderRequest $request, Order $order) { $order = QueryBuilder::for(Order::class) ->allowedIncludes($this->allowedIncludes(self::INCLUDES)) ->findOrFail($order->id); // Return the order as a JSON response return new OrderResource($order); } /** * Update a specific order */ public function update(UpdateOrderRequest $request, Order $order) { // Validate and update the order $order->update($request->validated()); // Return the updated order as a JSON response return new OrderResource($order); } /** * Delete a specific order */ public function destroy(DeleteOrderRequest $request, Order $order) { // Delete the order $order->delete(); return $this->returnNoContent(); } }