/** * @param int $newReleaseNumber * @param WorkflowPublisher $workflowPublisher * @throws Workflow\Exception\WorkflowReleaseAlreadyExists */ public function releaseCurrentVersion($newReleaseNumber, WorkflowPublisher $workflowPublisher) { if ($this->currentReleaseNumber >= $newReleaseNumber) { throw WorkflowReleaseAlreadyExists::withReleaseNumber($newReleaseNumber, $this); } $workflowPublisher->writeToProcessingConfig($this); //We increase the version to include the WorkflowWasReleased event $this->recordThat(WorkflowWasReleased::withVersion($this->workflowId(), $this->version + 1, $newReleaseNumber)); }