On my two most recent trips to the Bahamas, I have filed a VFR flight plan rather than an IFR plan. The main reason for this is the routing that ATC wants me to take keeps me out over the water much further and longer than I really want to be. Both of these trips that I have completed have been met with issues closing my VFR flight plan. Twice now I have been admonished by ground control for not closing out my flight plan. My process is pretty simple - remain on the VFR flight plan with ATC flight following (out of Palm Beach btw) until I'm 20nm miles from the airport and cancel with ATC in the air. My verbiage is precise "N123xyz, I'd like to cancel my VFR flight plan." Both times, I have been responded to with "cancellation received, keep the code and switch to tower freq." This past trip (yesterday) I actually asked the controller to confirm that she received my cancellation request. It's been a while since I have filed a VFR flight plan so perhaps I'm missing something? Is the cancellation a sole function of the FSS? Should I be calling them instead in the air?