Expense::with(['media', 'user'])->latest()->paginate(10), ]); } public function store(ExpenseRequest $request): RedirectResponse { $validated = $request->validated(); $validated['user_id'] = auth()->id(); $expense = Expense::create($validated); if ($request->hasFile('image')) { $expense->addMediaFromRequest('image')->toMediaCollection('proof'); } return redirect()->back()->with('success', 'Data berhasil disimpan'); } public function update(ExpenseRequest $request, Expense $expense): RedirectResponse { $validated = $request->validated(); $expense->update($validated); if ($request->hasFile('image')) { $expense->addMediaFromRequest('image')->toMediaCollection('proof'); } return redirect()->back()->with('success', 'Data berhasil diperbarui'); } public function destroy(Expense $expense): RedirectResponse { $expense->delete(); return redirect()->back()->with('success', 'Data berhasil dihapus'); } public function bulkDestroy(Request $request): RedirectResponse { $ids = $request->input('ids'); Expense::whereIn('id', $ids)->delete(); return redirect()->back()->with('success', 'Data terpilih berhasil dihapus'); } }