Remove all previous cart if have same product creator
You simply need to create a rule that reacts on order creation, searches for existing orders for that user, and cancels those orders.



Next, add the condition to make sure you won't pull all anonymous orders. If you allow anonymous orders, you might have to implement some sort of custom session searching for orders.



Next, add an action that brings in a list of entities (we're going to pull a list of orders based on owner).



Then, select Commerce Orders



This is what the full action looks like when you've set it up for selecting by order owner's user id:



Next, you want to add a loop based on the orders you've pulled:



Next, you want to add an action inside that loop that changes the status of the orders:



Finally, set the order status to canceled:



Here's an export of the rule:

{ "rules_cancel_previous_orders" : {
    "LABEL" : "Cancel previous orders",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "REQUIRES" : [ "rules", "commerce_order", "entity" ],
    "ON" : { "commerce_order_insert" : [] },
    "IF" : [
      { "data_is" : { "data" : [ "commerce-order:uid" ], "op" : "\u003E", "value" : "0" } }
    ],
    "DO" : [
      { "entity_query" : {
          "USING" : {
            "type" : "commerce_order",
            "property" : "uid",
            "value" : [ "commerce-order:uid" ]
          },
          "PROVIDE" : { "entity_fetched" : { "entity_fetched" : "Fetched entity" } }
        }
      },
      { "LOOP" : {
          "USING" : { "list" : [ "entity-fetched" ] },
          "ITEM" : { "list_item" : "Current list item" },
          "DO" : [
            { "commerce_order_update_status" : { "commerce_order" : [ "commerce_order" ], "order_status" : "canceled" } }
          ]
        }
      }
    ]
  }
}