creatorId($comment->artwork_id); if ($creatorId) { $this->userStats->incrementCommentsReceived($creatorId); } // The commenter is "active" $this->userStats->ensureRow($comment->user_id); $this->userStats->setLastActiveAt($comment->user_id); } /** Soft delete. */ public function deleted(ArtworkComment $comment): void { $creatorId = $this->creatorId($comment->artwork_id); if ($creatorId) { $this->userStats->decrementCommentsReceived($creatorId); } } /** Hard delete after soft delete — already decremented; nothing to do. */ public function forceDeleted(ArtworkComment $comment): void { // Only decrement if the comment was NOT already soft-deleted // (to avoid double-decrement). if ($comment->deleted_at === null) { $creatorId = $this->creatorId($comment->artwork_id); if ($creatorId) { $this->userStats->decrementCommentsReceived($creatorId); } } } private function creatorId(int $artworkId): ?int { $id = DB::table('artworks') ->where('id', $artworkId) ->value('user_id'); return $id !== null ? (int) $id : null; } }