Если вы используете обычный php без расширений open swoole, rode runner etc.. то для вас есть только 1 способ добиться асинхронного выполнения кода. Это очереди, https://www.rabbitmq.com, https://kafka.apache.org
Если вы используете Laravel то просто установите Laravel Horizon
Если вы делаете интерфейс, значит предполагаете несколько реализаций в у разных структур, значит правильнее будет вернуть интерфейс, иначе ваш код не будет полиморфным