paginated($this->listByType($request, 'sell_transfer')); } public function adjustments(Request $request) { return $this->paginated($this->listByType($request, 'stock_adjustment')); } public function openingStock(Request $request) { return $this->paginated($this->listByType($request, 'opening_stock')); } protected function listByType(Request $request, string $type) { $business_id = $this->contextService->getBusinessId($request); return Transaction::where('business_id', $business_id) ->where('type', $type) ->with(['location']) ->orderBy('transaction_date', 'desc') ->paginate($request->input('per_page', 25)); } }