The purpose of describe is to allow BDD format:

```
describe('Given user logins', () => {
    describe('Given user Selects payment', () => {
        describe('Given user clicks pay', () => {
            it('Then deducts payment', () => {   
 
            })    
        })
    })
})
```

So it's perfectly fine to nest the describe. You can write steps in each describe block using **beforeEach**

```
describe('Given user logins', () => {

    beforeEach(async function() {
         login();
    });

    describe('Given user Selects payment', () => {

        beforeEach(async function() {
            selectpayment();
        });

        describe('Given user clicks pay', () => {
            it('Then deducts payment', () => {  
  
            })    
        })
    })
})
```