integer('per_page', 50), 1), 200); $page = max((int) $request->integer('page', 1), 1); $paginator = $reconcile_job->items() ->orderBy('id') ->paginate($perPage, ['*'], 'page', $page); return ApiResponse::success([ 'job_id' => (int) $reconcile_job->id, 'job_no' => $reconcile_job->job_no, 'items' => collect($paginator->items())->map(fn (ReconcileItem $r) => [ 'id' => (int) $r->id, 'side_a_ref' => $r->side_a_ref, 'side_b_ref' => $r->side_b_ref, 'difference_amount' => (int) $r->difference_amount, 'status' => $r->status, 'resolved_at' => $r->resolved_at?->toIso8601String(), 'created_at' => $r->created_at?->toIso8601String(), ])->all(), 'meta' => [ 'current_page' => $paginator->currentPage(), 'per_page' => $paginator->perPage(), 'total' => $paginator->total(), 'last_page' => $paginator->lastPage(), ], ]); } }