diff --git a/core/modules/content_moderation/content_moderation.module b/core/modules/content_moderation/content_moderation.module
index 3481c24..8fc184c 100644
--- a/core/modules/content_moderation/content_moderation.module
+++ b/core/modules/content_moderation/content_moderation.module
@@ -199,12 +199,12 @@ function content_moderation_entity_access(EntityInterface $entity, $operation, A
     $access_result = $valid_transition_targets ? AccessResult::neutral() : AccessResult::forbidden('No valid transitions exist for given account.');
 
     $access_result->addCacheableDependency($entity);
-    $access_result->addCacheableDependency($account);
     $workflow = $moderation_info->getWorkflowForEntity($entity);
     $access_result->addCacheableDependency($workflow);
-    foreach ($valid_transition_targets as $valid_transition_target) {
-      $access_result->addCacheableDependency($valid_transition_target);
-    }
+
+    //  \Drupal\content_moderation\StateTransitionValidation::getValidTransitions()
+    // returns a list of transitions based on the user's permission to use them.
+    $access_result->cachePerPermissions();
   }
 
   return $access_result;
