$model->getTable(), 'id' => $model->getKey(), 'error' => get_class($e)]); } }); foreach (['created', 'updated', 'deleted'] as $action) { static::registerModelEvent($action, function ($model) use ($action) { try { \App\Services\AdminRealtime\AdminRealtime::captureModel($model, $action); } catch (\Throwable $e) { \Illuminate\Support\Facades\Log::error('admin_realtime_capture_failed', ['source' => $model->getTable(), 'id' => $model->getKey(), 'error' => get_class($e)]); } }); } } protected function getCreatedAtAttribute($value): string { return Carbon::parse($value)->setTimezone('Asia/Shanghai')->format('Y-m-d H:i:s'); } protected function getUpdatedAtAttribute($value): string { return Carbon::parse($value)->setTimezone('Asia/Shanghai')->format('Y-m-d H:i:s'); } }