where('type', 'purchase') ->with(['contact', 'location', 'purchase_lines']); if ($request->filled('location_id')) { $query->where('location_id', $request->input('location_id')); } if ($request->filled('status')) { $query->where('status', $request->input('status')); } return $query->orderBy('transaction_date', 'desc') ->paginate($request->input('per_page', 25)); } public function find(int $business_id, int $id): Transaction { return Transaction::where('business_id', $business_id) ->where('type', 'purchase') ->with(['contact', 'location', 'purchase_lines.product', 'payment_lines']) ->findOrFail($id); } }