id) ->where('product_id', $product->id) ->first(); if ($existingUpvote) { // Remove upvote $existingUpvote->delete(); $upvoted = false; } else { // Add upvote Upvote::create([ 'user_id' => $user->id, 'product_id' => $product->id, ]); $upvoted = true; } // Get fresh upvotes count $upvotesCount = $product->upvotes()->count(); return response()->json([ 'success' => true, 'upvoted' => $upvoted, 'upvotesCount' => $upvotesCount, ]); } }