sync($musicInfo); } public function updated(MusicInfo $musicInfo): void { $this->sync($musicInfo); } public function deleted(MusicInfo $musicInfo): void { try { Search::deleteSecondary(SecondarySearchIndex::Music, $musicInfo->id); } catch (\Throwable $e) { Log::error('MusicInfoObserver: delete from search index failed', [ 'id' => $musicInfo->id, 'error' => $e->getMessage(), ]); } } private function sync(MusicInfo $musicInfo): void { try { Search::insertSecondary( SecondarySearchIndex::Music, $musicInfo->id, SecondaryIndexDocuments::music($musicInfo) ); } catch (\Throwable $e) { Log::error('MusicInfoObserver: sync to search index failed', [ 'id' => $musicInfo->id, 'error' => $e->getMessage(), ]); } } }