whereHas('member', function ($query) use ($corporateId) { $query->whereHas('employeds', function ($corporateEmployee) use ($corporateId) { $corporateEmployee->where('corporate_id', $corporateId); }); }) ->where('status', 'requested') ->get(); $approveds = ClaimRequest::query() ->whereHas('member', function ($query) use ($corporateId) { $query->whereHas('employeds', function ($corporateEmployee) use ($corporateId) { $corporateEmployee->where('corporate_id', $corporateId); }); }) ->whereHas('claim', fn ($query) => $query->where('status', 'approved')) ->where('status', 'approved') ->get(); $rejecteds = ClaimRequest::query() ->whereHas('member', function ($query) use ($corporateId) { $query->whereHas('employeds', function ($corporateEmployee) use ($corporateId) { $corporateEmployee->where('corporate_id', $corporateId); }); }) ->whereHas('claim', fn ($query) => $query->where('status', 'declined')) ->where('status', 'approved') ->get(); $disbrusments = ClaimRequest::query() ->whereHas('member', function ($query) use ($corporateId) { $query->whereHas('employeds', function ($corporateEmployee) use ($corporateId) { $corporateEmployee->where('corporate_id', $corporateId); }); }) ->whereHas('claim', fn ($query) => $query->where('status', 'disbrusmented')) ->where('status', 'approved') ->get(); return Helper::responseJson([ 'requesteds' => count($requesteds), 'approveds' => count($approveds), 'rejecteds' => count($rejecteds), 'disbrusments' => count($disbrusments) ]); } public function show($corporateId, $claimRequestId) { $data = ClaimRequest::query() ->with([ 'histories:historiable_type,historiable_id,title,description,created_at', 'member:id,person_id,name_prefix,name,name_suffix' => [ 'person:id,name_prefix,name,name_suffix,gender' ], 'claim:id,status', 'claimResults', 'claimConditions', 'claimDiagnosis' ]) ->find($claimRequestId, ['id', 'submission_date', 'member_id', 'claim_id', 'status']); return Helper::responseJson(new ShowResources($data)); } }