Configure HTTP Client with custom plugin/middleware

Hi, is it possible to configure Golang HTTP Client using custom plugin/middleware? I need to set a local address (source port from a specific range) and it seems the only way to do it in Golang is to configure HTTP Client (Client -> Transport -> DialContext -> LocalAddr) as described here:

By the way, is there a requirement to call next handler (next.ServeHTTP) from within the custom handler?