My approach lately has been to save only the original, full size image(s) to the storage directory (or S3, etc.) upon upload. Save that file path on the Post record (i.e. as cover_image_path or thumbnail_image_path). Then use Intervention Image's URL based manipulation to generate and cache ALL other sizes on the fly as necessary.
I have loved having the freedom of not being locked into generating additional sizes upon upload. There is one (or in your case, two) file(s) to worry about, and you can just tweak your filter class and clear the cache if your cover image or thumbnail dimensions ever need to change.