Our project is probably not an exemplary implementation of the Cake pattern because it was originally a Ruby app that didn't use any dependency injection, so take this with a grain of salt
Our DAOs are in the model layer / folder - User.scala contains a User case class and a Users Slick Table[User].
The traits in the Service layer / folder are tightly coupled to the model layer - we do not inject the DAOs.
The service traits are injected into the controllers using the Cake pattern. We have one Service per Controller, eg we have a StreamsController and a StreamsService.
We have about twelve Controllers / Services and about eighty DAOs (one per MySql table).
We have several utility classes, such as a Redis client pool and an HTML template renderer - these are in a Common folder below the model layer because a few are used in the DAOs. We have an Apps trait in the service layer that holds abstract vals to these classes, and all Services include Apps via self : Apps => . The controller layer then has the responsibility to implement and inject Apps.