While this does not directly answer your question as to a cruise trip from Porto, you might be able to work something out starting from a train station in the Douro Valley area. It's a beautiful area, and an overnight there could be well spent. We just came back from Portugal yesterday and we took an all day private tour through the Douro Valley with a young man who picked us up at our Airbnb, took us to a private port tasting, lunch (with wine) at a lovely mountain top restaurant, afternoon boat ride, a second wine tasting, dinner (with wine), lots of conversation, and beautiful drive in the country throughout the valley. At the end he safely returned us, stuffed to the gills and well subscribed with wine, to our Airbnb. He is quite intelligent, speaks very good English, and has a wealth of knowledge about wine, port, the area and its history. We had a truly wonderful day with him. While we had him curate our itinerary, you could certainly give him input as to what you would like to do and I believe he would do his absolute best to meet your requests. The entire day, including lunch, dinner, two tastings, an hour boat ride on the river (which is actually plenty of time), and lots of driving was 179 euro per person, which was very reasonable considering all that we did. He also does partial day tours if that fits better with your schedule or budget. I would highly recommend reaching out to Daniel to book a day with him, I don't think you will be disappointed, it truly was one of our best days in Portugal. Daniel Ferreira and his email is [email protected].
I hope you enjoy Portugal, we had a wonderful time there.