public function remind(string $providerName, ?\DateTimeImmutable $now = null): void
    {
        $now = $now ?? new \DateTimeImmutable();

        /** @var ProviderInterface $provider */
        $provider = $this->providers->get($providerName);

        /** @var ItemInterface $item */
        foreach ($provider->getItems($now) as $item) {
            $markerId = $providerName.':'.$item->getId();

            if ($this->marker->isMarked($markerId)) {
                continue;
            }

            $event = new ReminderEvent($providerName, $now, $item);
            $this->dispatcher->dispatch(ReminderEvents::remind($providerName), $event);

            $this->marker->mark($markerId);

            if ($item instanceof ClearableItemInterface) {
                $item->clear();
            }
        }
    }
public function remind(string $providerName, ?\DateTimeImmutable $now = null): void
    {
        $now = $now ?? new \DateTimeImmutable();

        /** @var ProviderInterface $provider */
        $provider = $this->providers->get($providerName);

        /** @var ItemInterface $item */
        foreach ($provider->getItems($now) as $item) {
            $markerId = $providerName.':'.$item->getId();

            if ($this->marker->isMarked($markerId)) {
                continue;
            }

            $event = new ReminderEvent($providerName, $now, $item);
            $this->dispatcher->dispatch(ReminderEvents::remind($providerName), $event);

            $this->marker->mark($markerId);

            if ($item instanceof ClearableItemInterface) {
                $item->clear();
            }
        }
    }
{@inheritdoc}