diff --git a/ee/app/workers/gitlab_subscriptions/members/destroyed_worker.rb b/ee/app/workers/gitlab_subscriptions/members/destroyed_worker.rb
index 05a6903b9500507af529177a21b1c636b43ced7d..fcfd32a61457c82843037e2c93d83fca146f7389 100644
--- a/ee/app/workers/gitlab_subscriptions/members/destroyed_worker.rb
+++ b/ee/app/workers/gitlab_subscriptions/members/destroyed_worker.rb
@@ -17,7 +17,7 @@ def handle_event(event)
 
         return unless user && namespace&.group_namespace?
 
-        return if namespace.billed_project_user?(user) || namespace.billed_group_user?(user)
+        return if ::Member.in_hierarchy(namespace).with_user(user).exists?
 
         GitlabSubscriptions::SeatAssignment.find_by_namespace_and_user(namespace, user)&.destroy
       end
diff --git a/ee/spec/workers/gitlab_subscriptions/members/destroyed_worker_spec.rb b/ee/spec/workers/gitlab_subscriptions/members/destroyed_worker_spec.rb
index 3e64a3a3a2b504ce69b20591a5b927f8990c6f05..d5453e42632b1a92b0c32b950a2b07ca00c06032 100644
--- a/ee/spec/workers/gitlab_subscriptions/members/destroyed_worker_spec.rb
+++ b/ee/spec/workers/gitlab_subscriptions/members/destroyed_worker_spec.rb
@@ -89,17 +89,25 @@
       it_behaves_like 'returns early'
     end
 
-    context 'when user is still billed member of group hierarchy' do
+    context 'when user is still a member of group hierarchy' do
       let(:another_sub_group) { create(:group, parent: root_namespace) }
 
       before do
-        another_sub_group.add_developer(user)
+        another_sub_group.add_guest(user)
       end
 
       it_behaves_like 'returns early'
+
+      context 'when the user is blocked' do
+        before do
+          user.block!
+        end
+
+        it_behaves_like 'returns early'
+      end
     end
 
-    context 'when user is still billed member of project hierarchy' do
+    context 'when user is still a member of project hierarchy' do
       let(:project) { build(:project, group: root_namespace) }
 
       before do