public function getTotalFee(Member $member) { $query = Lead::query(); $query->leftJoin('lead_solutions', function ($join) { $join->on('lead_solutions.lead_id', '=', 'leads.id'); }); $query->leftJoin('solutions', function ($join) { $join->on('solutions.id', '=', 'lead_solutions.solution_id'); }); $query->where('leads.member_id', '=', $member->id); $query->select(db()->raw('lead_solutions.*, solutions.fee')); $rows = $query->get(); if (!$rows->isEmpty()) { $total = 0; foreach ($rows as $item) { if (!is_null($item->custom_fee)) { $total += $item->custom_fee; } else { $total += $item->fee; } } return $total; } else { return 0; } }