diff --git a/.rubocop_manual_todo.yml b/.rubocop_manual_todo.yml
index 462896509eefdc6d44db3338ed192eee97de2bcf..21de19b9a45381896eee1b0909de28d1fbcfa4a1 100644
--- a/.rubocop_manual_todo.yml
+++ b/.rubocop_manual_todo.yml
@@ -73,9 +73,6 @@ Rails/SaveBang:
     - 'ee/spec/models/elasticsearch_indexed_namespace_spec.rb'
     - 'ee/spec/models/environment_spec.rb'
     - 'ee/spec/models/epic_spec.rb'
-    - 'ee/spec/models/geo/project_registry_spec.rb'
-    - 'ee/spec/models/geo_node_spec.rb'
-    - 'ee/spec/models/geo_node_status_spec.rb'
     - 'ee/spec/models/gitlab_subscription_spec.rb'
     - 'ee/spec/models/issue_spec.rb'
     - 'ee/spec/models/label_note_spec.rb'
diff --git a/ee/changelogs/unreleased/rails-save-bang-ee-spec-models-geo.yml b/ee/changelogs/unreleased/rails-save-bang-ee-spec-models-geo.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2bd36655b4e49740db3f5fd6ac6b18302ce1cf0f
--- /dev/null
+++ b/ee/changelogs/unreleased/rails-save-bang-ee-spec-models-geo.yml
@@ -0,0 +1,5 @@
+---
+title: Fix Rails/SaveBang rubocop offenses in ee/spec/models/
+merge_request: 58115
+author: Abdul Wadood @abdulwd
+type: fixed
diff --git a/ee/spec/models/geo/project_registry_spec.rb b/ee/spec/models/geo/project_registry_spec.rb
index 00397a1a3eeb3fa3eaec10e51b7d15f93285a43c..652605a9ac18a758abe39c7bd91aff538cfdc011 100644
--- a/ee/spec/models/geo/project_registry_spec.rb
+++ b/ee/spec/models/geo/project_registry_spec.rb
@@ -797,7 +797,7 @@
       end
 
       it 'sets repository_retry_at to a future time' do
-        subject.update(repository_retry_count: 0)
+        subject.update!(repository_retry_count: 0)
 
         subject.fail_sync!(type, message, error)
 
@@ -805,7 +805,7 @@
       end
 
       it 'ensures repository_retry_at is capped at one hour' do
-        subject.update(repository_retry_count: 31)
+        subject.update!(repository_retry_count: 31)
 
         subject.fail_sync!(type, message, error)
 
@@ -882,7 +882,7 @@
       end
 
       it 'sets wiki_retry_at to a future time' do
-        subject.update(wiki_retry_count: 0)
+        subject.update!(wiki_retry_count: 0)
 
         subject.fail_sync!(type, message, error)
 
@@ -890,7 +890,7 @@
       end
 
       it 'ensures wiki_retry_at is capped at one hour' do
-        subject.update(wiki_retry_count: 31)
+        subject.update!(wiki_retry_count: 31)
 
         subject.fail_sync!(type, message, error)
 
diff --git a/ee/spec/models/geo_node_spec.rb b/ee/spec/models/geo_node_spec.rb
index f1688a38a4b4249b3ed263bf14157a0be5f75409..7d808d11186dd0ddfeda221b3b7f3cdde63eb4a4 100644
--- a/ee/spec/models/geo_node_spec.rb
+++ b/ee/spec/models/geo_node_spec.rb
@@ -148,7 +148,7 @@
 
         context 'when the oauth_application is missing' do
           before do
-            node.oauth_application.destroy
+            node.oauth_application.destroy!
             node.oauth_application = nil
           end
 
@@ -255,7 +255,7 @@
     it 'expires cache when removed' do
       expect(node).to receive(:expire_cache!) # 1 for creation 1 for deletion
 
-      node.destroy
+      node.destroy!
     end
   end
 
@@ -596,7 +596,7 @@
 
       expect(status).to be_a(GeoNodeStatus)
 
-      status.save
+      status.save!
 
       expect(new_node.find_or_build_status).to eq(status)
     end