Stop enviroments created with a matrix job

Hello!

I have a job that is created as such:

Deploy Test:
# ...
  environment:
    name:    $CI_COMMIT_REF_SLUG-$PLATFORM-$CI_PROJECT_NAME
    url:     https://$CI_COMMIT_REF_SLUG-$PLATFORM-$CI_PROJECT_NAME.dev.domain.tld
    deployment_tier: testing
    on_stop: Stop Deploy Test
    auto_stop_in: 1 day
  script:
    - do_something
  rules:
    - if: '($DEPLOY_STAGE == null || $DEPLOY_STAGE != "") && $CI_MERGE_REQUEST_ID == null'
      when: manual
  parallel:
    matrix:
      - PLATFORM: [ chrome, firefox, ios, android ]

I want Stop Deploy Test to run for each value of PLATFORM.

This solution is not approved by the linter because Deploy Test: [chrome] job: on_stop job Stop Deploy Test [$PLATFORM] is not defined:

Stop Deploy Test:
# ...
  stage: dev
  variables:
    GIT_STRATEGY: none
  environment:
    name:    $CI_COMMIT_REF_SLUG-$PLATFORM-$CI_PROJECT_NAME
    deployment_tier: testing
    action: stop
  script:
    - tear_down_everything
  rules:
    - if: '($DEPLOY_STAGE == null || $DEPLOY_STAGE != "") && $CI_MERGE_REQUEST_ID == null'
      when: manual
  allow_failure: true
  parallel:
    matrix:
      - PLATFORM: [ chrome, firefox, ios, android ]

As pointed out here, I can’t define on_stop: Stop Deploy Test [$PLATFORM].

This solution doesn’t work either because the value of $PLATFORM is missing:

Stop Deploy Test:
# ...
  stage: dev
  variables:
    GIT_STRATEGY: none
  environment:
    name:    $CI_COMMIT_REF_SLUG-$PLATFORM-$CI_PROJECT_NAME
    deployment_tier: testing
    action: stop
  script:
    - tear_down_everything
  rules:
    - if: '($DEPLOY_STAGE == null || $DEPLOY_STAGE != "") && $CI_MERGE_REQUEST_ID == null'
      when: manual
  allow_failure: true

I really don’t want to create 4 duplicated jobs (yes, I know I can use templates).

Any lead?