/// <summary>
        /// Is called when spawned order controller received
        /// </summary>
        /// <param name="orderController"></param>
        private void OnOrderControllerReceived(OrderController orderController)
        {
            TurnOff(orderController.GetCanvasGroup());
            StartSpawnAnimation(orderController);
            orders.Add(orderController);
            RescaleOrderPanel();
            //set the order's information randomly


            ResidenceType randomResidence =
                (ResidenceType) Random.Range(0, System.Enum.GetValues(typeof(ResidenceType)).Length);

            SetOrder(orderController, OilType.ProcessedOil, 2);
            SetDestination(orderController, randomResidence);
        }
 /// <summary>
 /// start spawn fade animation
 /// </summary>
 /// <param name="order"></param>
 public void StartSpawnAnimation(OrderController order)
 {
     CanvasGroup canvasGroup = order.GetCanvasGroup();
     float scale;
     spawnEffect = this.UpdateAsObservable().Subscribe(_ =>
         {
             scale = speed * Time.deltaTime;
             canvasGroup.alpha += scale;
             if (canvasGroup.alpha >= 1)
             {
                 spawnEffect?.Dispose();
             }
         })
         .AddTo(this);
 }