indexer->index($artwork); } /** Artwork updated — covers publish, approval, metadata changes. */ public function updated(Artwork $artwork): void { // When soft-deleted, remove from index immediately. if ($artwork->isDirty('deleted_at') && $artwork->deleted_at !== null) { $this->indexer->delete($artwork->id); return; } $this->indexer->update($artwork); } /** Soft delete — remove from search. */ public function deleted(Artwork $artwork): void { $this->indexer->delete($artwork->id); } /** Force delete — ensure removal from index. */ public function forceDeleted(Artwork $artwork): void { $this->indexer->delete($artwork->id); } /** Restored from soft-delete — re-index. */ public function restored(Artwork $artwork): void { $this->indexer->index($artwork); } }