version; } public function getResult(): ExecutionResult|null { return $this->result; } public function markAsExecuted(ExecutionResult $result): void { if ($this->result !== null) { throw PlanAlreadyExecuted::new(); } $this->result = $result; } public function getMigration(): AbstractMigration { return $this->migration; } public function getDirection(): string { return $this->direction; } }