trim(collect(explode($sep, $value))->map(function ($segment) { return $segment[0] ?? ''; })->join($glue))); // Menambahkan event listener untuk jejak audit pada model yang ingin di-audit // Corporate::created(function ($model) { // $this->logAuditTrail($model, 'created'); // }); Corporate::updated(function ($model) { $this->logAuditTrail($model, 'updated'); }); Corporate::deleted(function ($model) { $this->logAuditTrail($model, 'deleted'); }); Member::updated(function ($model) { $this->logAuditTrail($model, 'updated'); }); Member::deleted(function ($model) { $this->logAuditTrail($model, 'deleted'); }); // Corporate Service CorporateService::updated(function ($model) { $this->logAuditTrail($model, 'updated'); }); CorporateService::deleted(function ($model) { $this->logAuditTrail($model, 'deleted'); }); // Corporate Plans CorporatePlan::updated(function ($model) { $this->logAuditTrail($model, 'updated'); }); CorporatePlan::deleted(function ($model) { $this->logAuditTrail($model, 'deleted'); }); // Corporate Benefits CorporateBenefit::updated(function ($model) { $this->logAuditTrail($model, 'updated'); }); CorporateBenefit::deleted(function ($model) { $this->logAuditTrail($model, 'deleted'); }); } private function logAuditTrail($model, $action) { // Membuat jejak audit baru $auditTrail = new AuditTrail([ 'model' => get_class($model), 'model_id' => $model->getKey(), 'action' => $action, 'old_values' => json_encode($model->getOriginal()), 'new_values' => json_encode($model->getAttributes()), 'user_id' => Auth::id(), ]); // Simpan jejak audit $auditTrail->save(); } }