Your implementation is good as a first step, and in a simple, not too big, domain.
A such implementation has avantages: While just one service per http resquest manages all the repositories it needs, there is no difficulty to manage the sql transaction to maintain integrity.
It has too disadvantages: You could write two times, or more, the same business rules... We all are lazy so it's a problem. But a major failure will come when someone, or you, 6 months later, will call the repository for the third time in its service implementation and forget a business rule... bye bye lovely domain...
My recommendation would be that a service just call its repository, and calls the other services that encapsulate their own logic, when needed. The only trick to remember is to propagate the transaction to avoid odd things to happen.
Hope it helps, Julien