public static function getWorkflowDefinition(): array
{
return [
'type' => self::WORKFLOW_TYPE,
'supports' => [self::class],
'places' => [
self::PLACE_DRAFT,
self::PLACE_NEW,
self::PLACE_PAID => ['metadata' => ['bg_color' => '#FF00AA']],
self::PLACE_PROVISIONED,
self::PLACE_EXPIRED,
],
'initial_places' => [self::PLACE_DRAFT],
'transitions' => [
self::TRANSITION_START => ['from' => self::PLACE_DRAFT, 'to' => self::PLACE_NEW, 'metadata' => ['kyp1']],
self::TRANSITION_NOTIFY => ['from' => self::PLACE_NEW, 'to' => self::PLACE_NEW, 'metadata' => ['kyp2']],
self::TRANSITION_PAYMENT => ['from' => self::PLACE_NEW, 'to' => self::PLACE_PAID, 'metadata' => ['kyp3']],
self::TRANSITION_PROVISION => ['from' => self::PLACE_PAID, 'to' => self::PLACE_PROVISIONED, 'metadata' => ['kyp4']],
self::TRANSITION_EXPIRE => ['from' => self::PLACE_NEW, 'to' => self::PLACE_EXPIRED, 'metadata' => ['kyp5']],
],
];
}
[2022-08-10 15:20:44] local.DEBUG: Entered "New" for subject of class "App\Crm\Models\Orders\Order" in workflow "CrmOrder".
[2022-08-10 15:20:45] local.DEBUG: Announce "startProcess" for subject of class "App\Crm\Models\Orders\Order" in workflow "CrmOrder".
Workflow:

When
workflow_apply('startProcess')we receive the following events: