Cavalier close in on play-offs after digging deep against Portmore United