/**
  * {@inheritdoc}
  */
 public function executePaymentAccess(AccountInterface $account)
 {
     if (!$this->getPayment()) {
         throw new \LogicException('Trying to check access for a non-existing payment. A payment must be set trough self::setPayment() first.');
     }
     return AccessResult::allowedIf($this->pluginDefinition['active'])->andIf($this->executePaymentAccessCurrency($account))->andIf($this->eventDispatcher->executePaymentAccess($this->getPayment(), $this, $account))->andIf($this->doExecutePaymentAccess($account))->addCacheableDependency($this->getPayment())->addCacheTags(['payment_method']);
 }