Where to place add_action when enqueueing?

Makes no difference. Despite the fact add_action doesn’t actually check if the callback is indeed callable (i.e. is a valid function/class/method), PHP will first “load” function and class definitions before executing inline code, hence why you can do something like:

wpse_185390_function(); // Perfectly fine, even though the function is defined "afterwards"

function wpse_185390_function() {
    echo 'I\'m down here!';
}

It’s entirely up to you if you “hook” before or after the definition – I personally prefer after for consistency (it’s how pretty much all WordPress core does it).