Объркана ти е логиката.
Нещата не се стартират след като кликнеш някъде.
В такава ситуация си правиш една таблица, където регистрираш всеки потребител, който трябва да участва в "работата"(queue job). Това queue работата му е да взима данните от базата данни и да ъпдейтва ресурсите на записаните потребители.
От там си правиш Schedule примерно на всеки 5 минути да изпълнява този queue job и който се стартира от самото пускане на играта.
Самата таблица трябва да съдържа например:
resources_per_min - измисли си име
SQL code:
user_id
gold
stone
iron
Това трябва да съдържа по колко ресурси на 5 минути трябва да се увеличават. Отделно си имай таблица
resources да речем, която де факто ще се обновява.
Тази таблица(resources_per_min) трябва да се ъпдейтва от друго queue, което се стартира при кликане бутона за построяване на сграда и му се слага delay, който е времето за построяване на сграда + подаваш user_id да знаеш на кой потребител трябва да обновиш данните.
И след като искаш да учиш Laravel, към всичко това можеш да използваш Broadcasting, за да направиш нещата малко real-time.
Надявам се, че съм го описал добре. Ако не, ще се опитам да ти направя някоя графика.