Every abstraction promises to save you effort later in exchange for effort now. Most never collect on the promise.
The cost of a layer
Indirection has a running cost: more to read, more to debug, more places for behaviour to hide. That cost is paid every single day, by everyone, whether or not the flexibility is ever used.
A simple test
Has this abstraction been bent in two genuinely different directions yet? If not, it is speculative. The right time to extract is after the second concrete use, not before the first.
Delete first
When in doubt, inline it. Duplication you can see beats indirection you cannot. You can always extract later — that is the cheap direction.
