If you only build one project configuration, a single job would be enough, with one or more deployment clauses, with different deployment conditions:
<build>
deploy:
- <to dev env>
on:
branch: main
- <to staging>
on: <...>
- <to production>
on: <...>
See Can we deploy into different environments from the same branch? - #2 by native-api for options for the last two conditions.