validate([ 'member_id' => 'required', 'user_id' => 'required', 'type' => 'required|in:consultation,teleconsultation,medicine', // 'speciality_code' => 'required', 'total_claim' => 'required', 'detail' => 'required', ]); $currentSpeciality = Speciality::where('code', $request->speciality_code)->first(); $gpSpecialityName = config('aso.general_practitioner_speciality_name', 'Umum'); $isGp = $gpSpecialityName == ($currentSpeciality ? $currentSpeciality->name : false); if ($request->type == 'medicine') { $benefitCode = 'OPMEDI1'; } else if ($isGp) { $benefitCode = 'OPCONS1'; } else { $benefitCode = 'OPCONS2'; } $member = Member::query() ->where('member_id', $request->member_id) ->with([ 'currentPlan', ]) ->firstOrFail(); $benefit = $member->currentPlan->benefits()->where('code', $benefitCode)->first(); $claim = ClaimService::storeClaim($member, null, $request->total_claim, $benefit, 'requested'); $claim->status = 'approved'; $claim->save(); return Helper::responseJson($claim); } public function updateClaimDiagnosis(Request $request) { $request->validate([ 'claim_code' => 'required', 'icd_codes' => 'required' ]); // dd($request->toArray()); return $request->toArray(); } }