public function atomicMethod(...$args)
    {
        $di = $this->getDI();
        $router = $di->get('router');
        $matchedRoute = $router->getMatchedRoute();
        $handler = $matchedRoute->getName();
        $db = $di->get('db');
        $store = $this->getDI()->get('store');
        $db->begin();
        $store->update('transaction_is_atomic', true);

        try {
            $result = $this->{$handler}(...$args);
            $store->update('rollback_transaction', false);
            return $result;
        } catch (\Throwable $e) {
            $store->update('rollback_transaction', true);
            throw $e;
        }
    }