Multiple Camunda ProcessInsatnce getting created for single order

Hii Community,
We are using camunda8 version 8.3.1 as self managed in production , recently we saw an issue , we use GCP as cloud platform and we saw that when zeebe resources are used more then requested . for one order more then one camunda process instances have been got created.

Here is the code i am using , i can see that zeebeClient.newCreateInstanceCommand() had been called only once from my orchestrator service but it has created processInstance multiple time at gap of less then one minute.
Can you please suggest why it has happened , am i assuming wrong and how to mitigate it.

Here is the sample code

@Transactional(rollbackFor = Exception.class)
  public void start(@Valid EventData order,
      Map<String, String> attributesMap) {
    try {
      boolean processAlreadyCreated =
          OrderRepository.findByOrderId(Order.orderId()).isPresent();

      if (!processAlreadyCreated) {
        log.info("Starting Order Orchestration: {}", order);
        Order.setOrderCreatedAt(order.orderCreatedAt() == null ?
            OffsetDateTime.now() : order.getOrderCreatedAt());

        OrderOrchestrator orderOrchestrator =
            orderOrchestratorTransactionalService.save(order, attributesMap);
        eventService.registerDataOrchestratorStateChangedEvent(orderOrchestrator, order, EVENT_ACTION_CREATE);

       orderOrchestratorProcessPort.create(order, attributesMap)
            .doOnError(error -> orderOrchestratorTransactionalService
                .setProcessAsError(orderOrchestrator.getId(), error))
            .subscribe(processInfo -> orderOrchestratorTransactionalService
                .setProcessAsStarted(orderOrchestrator.getId(), processInfo));
        eventService.registerDataOrchestratorStateChangedEvent(orderOrchestrator, order, EVENT_ACTION_CREATE);

        log.info("Started Fulfilment Order Orchestration: {}", fulfilmentOrder);
        if (!Objects.isNull(fulfilmentOrderOrchestrator)) {
         publishSomeEvent(###);
        }
      } else {
        log.info("Skipping Already Processed  Order: {}", order);
      }
    } catch (Exception ex) {
      log.error("Error to Start  Order Orchestration: {} {}", order, ex.getStackTrace());
      publishSomeEvent(***);
      throw ex;
    }
  }

  public Mono<ProcessDetail> create(OrderEventData order,
      Map<String, String> eventHeaders) {
   
    processVariables.put("someVaribable", "xyz");
    ProcessInstanceEvent result = zeebeClient.newCreateInstanceCommand()
        .bpmnProcessId(processKey)
        .latestVersion()
        .variables(processVariables)
        .send()
        .join();
    return Mono.just(ProcessUtil.toProcessDetail(result));
  }