withSum('addons', 'price')->orderBy('id')->get(); } public function create($request) { $data = $request->except('_token'); $total = 0; $paymentCode = PaymentCode::create($data); if($data['addons'] != null){ $paymentCode->addons()->createMany($data['addons']); } return true; } public function update($request) { $data = $request->except('_token'); $paymentCode = PaymentCode::find($data['id']); if($paymentCode){ $paymentCode->update($data); foreach ($data['addons'] as $key => $addon) { $paymentCode->addons()->updateOrCreate( [ 'id' => $addon['id'] ?? null, ], $addon ); } $addOnsId = collect($data['addons'])->pluck('id')->toArray(); $paymentCode->addons()->whereNotIn('id', $addOnsId)->delete(); } return true; } }