authorize('viewAny', Mutation::class); $mutations = Mutation::filter(request()->only('startDate', 'endDate')); return inertia('mutation/Report', [ 'initialDateRange' => request()->collect(['startDate', 'endDate'])->flatten(), 'mutations' => Inertia::lazy( fn() => [ 'totalIncome' => MutationService::totalIncomeAsString($mutations->get()), 'totalExpense' => MutationService::totalExpenseAsString($mutations->get()), 'totalAmount' => MutationService::totalAmountAsString($mutations->get()), 'details' => $mutations ->latest() ->paginate(10) ->withQueryString() ->through(fn($mutation) => [ 'createdAt' => $mutation->created_at, 'amount' => $mutation->amount, 'type' => $mutation->type, 'outTransactionId' => $mutation->out_transaction_id, 'expenseId' => $mutation->expense_id, 'topUpId' => $mutation->top_up_id ]) ] ) ]); } /** * Export to excel */ public function exportExcel() { $this->authorize('viewAny', Mutation::class); return new MutationExport(request()); } }