find($projectId); } elseif ($entityType === 'task_comments') { $entityType = 'tasks_activities'; $model = $data[0]; } elseif ($entityType === 'project_groups') { $entityType = 'projects'; $action = 'edit'; /** @var ProjectGroup $group */ $group = $data[0]; $model = $group->projects()->get(); } else { $model = $data[0]; } App::terminating(static function () use ($entityType, $action, $model) { $items = is_array($model) || $model instanceof Collection ? $model : [$model]; foreach ($items as $item) { static::broadcastEvent($entityType, $action, $item); if (in_array($entityType, ['tasks', 'projects'])) { $project = match (true) { $item instanceof Task => $item->project, $item instanceof Project => $item, }; static::broadcastEvent('gantt', 'updateAll', $project); } } }); }); // CatEvent and Filter are scoped to request, subscribe on every request for it to work with laravel octane Filter::subscribe(AttachmentFilter::class); CatEvent::subscribe(AttachmentObserver::class); collect(Module::allEnabled())->each(static function (\Nwidart\Modules\Module $module) { App::call([preg_grep("/ModuleServiceProvider$/i", $module->get('providers'))[0], 'registerEvents']); }); return $next($request); } }