public function execute(Campaign $campaign, array $contactIdList, $batchLimit = 100)
    {
        $limiter = new ContactLimiter($batchLimit, null, null, null, $contactIdList);

        // Make sure these events show up as system triggered for summary counts to be accurate.
        defined('MAUTIC_CAMPAIGN_SYSTEM_TRIGGERED') or define('MAUTIC_CAMPAIGN_SYSTEM_TRIGGERED', 1);

        /** @var Counter $counter */
        $counter = $this->kickoffExecutioner->execute($campaign, $limiter);

        // All events not included in the kickoff are scheduled or decisions waiting on input.

        return $counter;
    }