please next time wrap your code with 3 backticks code
$results = DB::table('tblencounter') ->join('tblpatientinfo', 'tblpatientinfo.fldpatientval', '=', 'tblencounter.fldpatientval') ->join('tblpatbilling as bd', 'bd.fldencounterval', '=', 'tblencounter.fldencounterval') ->whereRaw('cast(bd.fldtime as date) >= ?', [$fromdate]) ->whereRaw('cast(bd.fldtime as date) <= ?', [$todate]) ->whereIn('bd.fldcomp', ['comp57', 'comp51', 'comp52']) ->where('bd.flditemname', 'Family Registration Mode(Family)') ->where(function ($query) { $query->whereNotIn('fldrelation', ['Son', 'Daughter']) ->orWhereNull('fldrelation'); }) ->groupBy(DB::raw('cast(bd.fldtime as date)')) ->select( DB::raw('cast(bd.fldtime as date) as fldtime'), DB::raw('SUM(CASE WHEN fldptsex = "Male" AND bd.fldbillno LIKE "CAF%" THEN 1 ELSE 0 END) as male_count'), DB::raw('SUM(CASE WHEN fldptsex = "Female" AND bd.fldbillno LIKE "CAF%" THEN 1 ELSE 0 END) as female_count'), DB::raw('SUM(CASE WHEN fldptsex = "Male" AND bd.fldbillno LIKE "CREF%" THEN 1 ELSE 0 END) as male_return_count'), DB::raw('SUM(CASE WHEN fldptsex = "Female" AND bd.fldbillno LIKE "CREF%" THEN 1 ELSE 0 END) as female_return_count'), DB::raw('SUM(CASE WHEN fldptsex = "Other" AND bd.fldbillno LIKE "CAF%" THEN 1 ELSE 0 END) as others_count'), DB::raw('SUM(CASE WHEN fldptsex = "Other" AND bd.fldbillno LIKE "CREF%" THEN 1 ELSE 0 END) as others_return_count') ) ->orderBy('bd.fldtime') ->get()