code: public function matchAll(AddressInterface $address, $scope = null)
      {
          // Find all matching zones.
          $results = [];
          foreach ($this->repository->getAll($scope) as $zone) {
              if ($zone->match($address)) {
                  $results[] = [
                      'priority' => (int) $zone->getPriority(),
                      'zone' => $zone,
                  ];
              }
          }
          // Sort the matched zones by priority.
          usort($results, function ($a, $b) {
              if ($a['priority'] == $b['priority']) {
                  return 0;
              }
  
              return ($a['priority'] > $b['priority']) ? -1 : 1;
          });
          // Create the final zone array from the results.
          $zones = [];
          foreach ($results as $result) {
              $zones[] = $result['zone'];
          }
  
          return $zones;
      }
docs: {@inheritdoc}