I'm not sure what you mean by cypress is too fast... Maybe you need to wait for the spinner to be visible first and then wait for it to disappear?
cy.get('yourSpinner', {timeout: 30000}).should('be.visible');
cy.get('yourSpinner', {timeout: 30000}).should('not.be.visible');