Do not overcomplicate simple tasks. Most of the time you will need only:
There is plenty of complicated stuff in Scala, such as:
Reader Monadfor Dependency Injection.
These things are not clear for newcomers: avoid using them before you understand them. Using advanced concepts without a real need obfuscates the code, making it less maintainable.