Если нужно, чтобы вторая функция выполнялась только после того, как первые существа были наняты, то соответственно можно под условием "if gold >= 3000 then" заменить в триггере nil на "Naim2". Тогда так получится:
...
if gold >= 3000 then
Trigger(OBJECT_TOUCH_TRIGGER, "Tavern", "Naim2")
SetPlayerResource(PLAYER_1, GOLD, gold - 3000)
AddHeroCreatures(Naim1_hero, 4, 30)
else ...
А Trigger(OBJECT_TOUCH_TRIGGER, "Tavern", "Naim2") в самом конце убрать.
В таком случае в начале активируется триггер на "Naim1", после найма он заменится на "Naim2", а после найма вторых существ обнулится.