To make available what another needs — supply as a kept promise.
Latin providere (to foresee, to prepare for, to supply): pro- (before, ahead) + videre (to see); to provide is, at its root, to see a need coming and to make ready for it before it is asked.
To make available what another needs, as a promise kept in advance rather than a favour granted on request. The root's foreseeing is the difference: to provide is to have already looked ahead.